diff --git a/.gitignore b/.gitignore
index 2a5f87e..d07f507 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,5 +7,4 @@
/.idea/
node_modules
package-lock.json
-package.json
-codectrl-web/elm-stuff
+package.json
\ No newline at end of file
diff --git a/Cargo.lock b/Cargo.lock
index b2b9757..38c17ba 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -10,9 +10,9 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
[[package]]
name = "ab_glyph"
-version = "0.2.19"
+version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5568a4aa5ba8adf5175c5c460b030e27d8893412976cc37bef0e4fbc16cfbba"
+checksum = "fe21446ad43aa56417a767f3e2f3d7c4ca522904de1dd640529a76e9c5c3b33c"
dependencies = [
"ab_glyph_rasterizer",
"owned_ttf_parser",
@@ -105,9 +105,9 @@ dependencies = [
[[package]]
name = "ahash"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107"
+checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
dependencies = [
"cfg-if",
"once_cell",
@@ -141,9 +141,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.68"
+version = "1.0.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
+checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
[[package]]
name = "arboard"
@@ -165,9 +165,9 @@ dependencies = [
[[package]]
name = "arrayref"
-version = "0.3.6"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
[[package]]
name = "arrayvec"
@@ -183,34 +183,35 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
[[package]]
name = "async-stream"
-version = "0.3.3"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
dependencies = [
"async-stream-impl",
"futures-core",
+ "pin-project-lite",
]
[[package]]
name = "async-stream-impl"
-version = "0.3.3"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
name = "async-trait"
-version = "0.1.61"
+version = "0.1.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "705339e0e4a9690e2908d2b3d049d85682cf19fbd5782494498fbf7003a6a282"
+checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
@@ -298,12 +299,12 @@ dependencies = [
[[package]]
name = "axum"
-version = "0.6.2"
+version = "0.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1304eab461cf02bd70b083ed8273388f9724c549b316ba3d1e213ce0e9e7fb7e"
+checksum = "349f8ccfd9221ee7d1f3d4b33e1f8319b3a81ed8f61f2ea40b37b859794b4491"
dependencies = [
"async-trait",
- "axum-core 0.3.1",
+ "axum-core 0.3.3",
"bitflags",
"bytes",
"futures-util",
@@ -320,7 +321,6 @@ dependencies = [
"serde",
"sync_wrapper",
"tower",
- "tower-http",
"tower-layer",
"tower-service",
]
@@ -343,9 +343,9 @@ dependencies = [
[[package]]
name = "axum-core"
-version = "0.3.1"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f487e40dc9daee24d8a1779df88522f159a54a980f99cfbe43db0be0bd3444a8"
+checksum = "b2f958c80c248b34b9a877a643811be8dbca03ca5ba827f2b63baf3a81e5fc4e"
dependencies = [
"async-trait",
"bytes",
@@ -368,7 +368,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -427,9 +427,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
[[package]]
name = "block-buffer"
-version = "0.10.3"
+version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
"generic-array",
]
@@ -455,104 +455,95 @@ dependencies = [
[[package]]
name = "borsh"
-version = "0.9.3"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa"
+checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b"
dependencies = [
"borsh-derive",
- "hashbrown 0.11.2",
+ "hashbrown 0.13.2",
]
[[package]]
name = "borsh-derive"
-version = "0.9.3"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775"
+checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7"
dependencies = [
"borsh-derive-internal",
"borsh-schema-derive-internal",
"proc-macro-crate 0.1.5",
"proc-macro2",
- "syn",
+ "syn 1.0.109",
]
[[package]]
name = "borsh-derive-internal"
-version = "0.9.3"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065"
+checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
name = "borsh-schema-derive-internal"
-version = "0.9.3"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0"
+checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd"
dependencies = [
"proc-macro2",
"quote",
- "syn",
-]
-
-[[package]]
-name = "buf_redux"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
-dependencies = [
- "memchr",
- "safemem",
+ "syn 1.0.109",
]
[[package]]
name = "bumpalo"
-version = "3.11.1"
+version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
[[package]]
name = "bytecheck"
-version = "0.6.9"
+version = "0.6.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f"
+checksum = "13fe11640a23eb24562225322cd3e452b93a3d4091d62fab69c70542fcd17d1f"
dependencies = [
"bytecheck_derive",
"ptr_meta",
+ "simdutf8",
]
[[package]]
name = "bytecheck_derive"
-version = "0.6.9"
+version = "0.6.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf"
+checksum = "e31225543cb46f81a7e224762764f4a6a0f097b1db0b175f69e8065efaa42de5"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
name = "bytemuck"
-version = "1.12.3"
+version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f"
+checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
dependencies = [
"bytemuck_derive",
]
[[package]]
name = "bytemuck_derive"
-version = "1.3.0"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fe233b960f12f8007e3db2d136e3cb1c291bfd7396e384ee76025fc1a3932b4"
+checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
@@ -563,9 +554,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
[[package]]
name = "cairo-sys-rs"
@@ -592,9 +583,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.78"
+version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
[[package]]
name = "cesu8"
@@ -604,9 +595,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
[[package]]
name = "cfg-expr"
-version = "0.11.0"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa"
+checksum = "a35b255461940a32985c627ce82900867c61db1659764d3675ea81963f72a4c6"
dependencies = [
"smallvec",
]
@@ -634,9 +625,9 @@ dependencies = [
[[package]]
name = "chrono"
-version = "0.4.23"
+version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
+checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
dependencies = [
"iana-time-zone",
"js-sys",
@@ -713,9 +704,9 @@ dependencies = [
[[package]]
name = "cmake"
-version = "0.1.49"
+version = "0.1.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
+checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
dependencies = [
"cc",
]
@@ -738,9 +729,9 @@ dependencies = [
[[package]]
name = "cocoa-foundation"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
+checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6"
dependencies = [
"bitflags",
"block",
@@ -824,7 +815,7 @@ dependencies = [
"serde-wasm-bindgen",
"syntect",
"tokio",
- "toml",
+ "toml 0.5.11",
"tonic 0.7.2",
"tracing",
"tracing-wasm",
@@ -902,8 +893,8 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e57ff02e8ad8e06ab9731d5dc72dc23bef9200778eae1a89d555d8c42e5d4a86"
dependencies = [
- "prost 0.11.6",
- "prost-types 0.11.6",
+ "prost 0.11.8",
+ "prost-types 0.11.8",
"tonic 0.8.3",
"tracing-core",
]
@@ -920,7 +911,7 @@ dependencies = [
"futures",
"hdrhistogram",
"humantime",
- "prost-types 0.11.6",
+ "prost-types 0.11.8",
"serde",
"serde_json",
"thread_local",
@@ -954,9 +945,9 @@ dependencies = [
[[package]]
name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
[[package]]
name = "core-graphics"
@@ -997,18 +988,18 @@ dependencies = [
[[package]]
name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181"
dependencies = [
"libc",
]
[[package]]
name = "crc"
-version = "3.0.0"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53757d12b596c16c78b83458d732a5d1a17ab3f53f2f7412f6fb57cc8a140ab3"
+checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
dependencies = [
"crc-catalog",
]
@@ -1030,9 +1021,9 @@ dependencies = [
[[package]]
name = "crossbeam-channel"
-version = "0.5.6"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -1050,9 +1041,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
-version = "0.8.14"
+version = "0.8.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
+checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
dependencies = [
"cfg-if",
]
@@ -1098,9 +1089,9 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
[[package]]
name = "cxx"
-version = "1.0.86"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d1075c37807dcf850c379432f0df05ba52cc30f279c5cfc43cc221ce7f8579"
+checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
dependencies = [
"cc",
"cxxbridge-flags",
@@ -1110,9 +1101,9 @@ dependencies = [
[[package]]
name = "cxx-build"
-version = "1.0.86"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5044281f61b27bc598f2f6647d480aed48d2bf52d6eb0b627d84c0361b17aa70"
+checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
dependencies = [
"cc",
"codespan-reporting",
@@ -1120,24 +1111,24 @@ dependencies = [
"proc-macro2",
"quote",
"scratch",
- "syn",
+ "syn 2.0.13",
]
[[package]]
name = "cxxbridge-flags"
-version = "1.0.86"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61b50bc93ba22c27b0d31128d2d130a0a6b3d267ae27ef7e4fae2167dfe8781c"
+checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.86"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e61fda7e62115119469c7b3591fd913ecca96fb766cfd3f2e2502ab7bc87a5"
+checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
@@ -1152,12 +1143,12 @@ dependencies = [
[[package]]
name = "darling"
-version = "0.14.3"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
dependencies = [
- "darling_core 0.14.3",
- "darling_macro 0.14.3",
+ "darling_core 0.14.4",
+ "darling_macro 0.14.4",
]
[[package]]
@@ -1171,20 +1162,20 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn",
+ "syn 1.0.109",
]
[[package]]
name = "darling_core"
-version = "0.14.3"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -1195,18 +1186,18 @@ checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
dependencies = [
"darling_core 0.13.4",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
name = "darling_macro"
-version = "0.14.3"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
dependencies = [
- "darling_core 0.14.3",
+ "darling_core 0.14.4",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -1219,7 +1210,7 @@ dependencies = [
"hashbrown 0.12.3",
"lock_api",
"once_cell",
- "parking_lot_core 0.9.6",
+ "parking_lot_core 0.9.7",
"serde",
]
@@ -1313,9 +1304,9 @@ checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
[[package]]
name = "dotenvy"
-version = "0.15.6"
+version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d8c417d7a8cb362e0c37e5d815f5eb7c37f79ff93707329d5a194e42e54ca0"
+checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
[[package]]
name = "downcast-rs"
@@ -1362,7 +1353,7 @@ dependencies = [
"glutin",
"js-sys",
"percent-encoding",
- "raw-window-handle 0.5.0",
+ "raw-window-handle 0.5.2",
"ron",
"serde",
"tracing",
@@ -1379,7 +1370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65a5e883a316e53866977450eecfbcac9c48109c2ab3394af29feb83fcde4ea9"
dependencies = [
"accesskit",
- "ahash 0.8.2",
+ "ahash 0.8.3",
"epaint",
"nohash-hasher",
"ron",
@@ -1441,9 +1432,9 @@ dependencies = [
[[package]]
name = "either"
-version = "1.8.0"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
[[package]]
name = "emath"
@@ -1457,9 +1448,9 @@ dependencies = [
[[package]]
name = "encoding_rs"
-version = "0.8.31"
+version = "0.8.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
+checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
dependencies = [
"cfg-if",
]
@@ -1480,10 +1471,10 @@ version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0"
dependencies = [
- "darling 0.14.3",
+ "darling 0.14.4",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -1506,7 +1497,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de14b65fe5e423e0058f77a8beb2c863b056d0566d6c4ce0d097aa5814cb705a"
dependencies = [
"ab_glyph",
- "ahash 0.8.2",
+ "ahash 0.8.3",
"atomic_refcell",
"bytemuck",
"ecolor",
@@ -1516,6 +1507,27 @@ dependencies = [
"serde",
]
+[[package]]
+name = "errno"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
[[package]]
name = "error-code"
version = "2.3.1"
@@ -1560,9 +1572,9 @@ dependencies = [
[[package]]
name = "fastrand"
-version = "1.8.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
dependencies = [
"instant",
]
@@ -1592,7 +1604,7 @@ dependencies = [
"futures-core",
"futures-sink",
"pin-project",
- "spin 0.9.4",
+ "spin 0.9.8",
]
[[package]]
@@ -1622,13 +1634,13 @@ dependencies = [
[[package]]
name = "foreign-types-macros"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
@@ -1676,9 +1688,9 @@ dependencies = [
[[package]]
name = "futures"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
dependencies = [
"futures-channel",
"futures-core",
@@ -1691,9 +1703,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
dependencies = [
"futures-core",
"futures-sink",
@@ -1701,15 +1713,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
[[package]]
name = "futures-executor"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
dependencies = [
"futures-core",
"futures-task",
@@ -1729,38 +1741,38 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
[[package]]
name = "futures-macro"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
name = "futures-sink"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
[[package]]
name = "futures-task"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
[[package]]
name = "futures-util"
-version = "0.3.25"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
dependencies = [
"futures-channel",
"futures-core",
@@ -1806,9 +1818,9 @@ dependencies = [
[[package]]
name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
@@ -1885,9 +1897,9 @@ dependencies = [
[[package]]
name = "glutin"
-version = "0.30.4"
+version = "0.30.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "373e3fbcfa6b9c313faa03625a08268168ba9be1003d1ecfcebd5266388aa131"
+checksum = "f89bab9ec7715de13d5d5402238e66f48e3a5ae636ebb45aba4013c962e2ff15"
dependencies = [
"bitflags",
"cfg_aliases",
@@ -1900,7 +1912,7 @@ dependencies = [
"libloading",
"objc2",
"once_cell",
- "raw-window-handle 0.5.0",
+ "raw-window-handle 0.5.2",
"wayland-sys 0.30.1",
"windows-sys 0.45.0",
"x11-dl",
@@ -1992,9 +2004,9 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.3.15"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4"
+checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d"
dependencies = [
"bytes",
"fnv",
@@ -2017,20 +2029,20 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
[[package]]
name = "hashbrown"
-version = "0.11.2"
+version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [
"ahash 0.7.6",
]
[[package]]
name = "hashbrown"
-version = "0.12.3"
+version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
dependencies = [
- "ahash 0.7.6",
+ "ahash 0.8.3",
]
[[package]]
@@ -2091,9 +2103,9 @@ dependencies = [
[[package]]
name = "heck"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
dependencies = [
"unicode-segmentation",
]
@@ -2116,6 +2128,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "hermit-abi"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+
[[package]]
name = "hex"
version = "0.4.3"
@@ -2133,9 +2151,9 @@ dependencies = [
[[package]]
name = "http"
-version = "0.2.8"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
dependencies = [
"bytes",
"fnv",
@@ -2179,9 +2197,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "hyper"
-version = "0.14.23"
+version = "0.14.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c"
+checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899"
dependencies = [
"bytes",
"futures-channel",
@@ -2228,16 +2246,16 @@ dependencies = [
[[package]]
name = "iana-time-zone"
-version = "0.1.53"
+version = "0.1.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
- "winapi",
+ "windows 0.48.0",
]
[[package]]
@@ -2268,9 +2286,9 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "1.9.2"
+version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown 0.12.3",
@@ -2289,11 +2307,22 @@ dependencies = [
"web-sys",
]
+[[package]]
+name = "io-lifetimes"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
+dependencies = [
+ "hermit-abi 0.3.1",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "ipnet"
-version = "2.7.1"
+version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
+checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f"
[[package]]
name = "itertools"
@@ -2306,22 +2335,24 @@ dependencies = [
[[package]]
name = "itoa"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
[[package]]
name = "jni"
-version = "0.20.0"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
dependencies = [
"cesu8",
+ "cfg-if",
"combine",
"jni-sys",
"log",
"thiserror",
"walkdir",
+ "windows-sys 0.45.0",
]
[[package]]
@@ -2332,20 +2363,20 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[package]]
name = "js-sys"
-version = "0.3.60"
+version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "jsonwebtoken"
-version = "8.2.0"
+version = "8.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09f4f04699947111ec1733e71778d763555737579e44b85844cae8e1940a1828"
+checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
dependencies = [
- "base64 0.13.1",
+ "base64 0.21.0",
"ring",
"serde",
"serde_json",
@@ -2375,9 +2406,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.139"
+version = "0.2.141"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
[[package]]
name = "libloading"
@@ -2424,6 +2455,12 @@ version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f"
+
[[package]]
name = "lock_api"
version = "0.4.9"
@@ -2490,9 +2527,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memmap2"
-version = "0.5.8"
+version = "0.5.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
dependencies = [
"libc",
]
@@ -2508,9 +2545,9 @@ dependencies = [
[[package]]
name = "mime"
-version = "0.3.16"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]]
name = "mime_guess"
@@ -2539,14 +2576,14 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.8.5"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
dependencies = [
"libc",
"log",
"wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.42.0",
+ "windows-sys 0.45.0",
]
[[package]]
@@ -2556,21 +2593,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
[[package]]
-name = "multipart"
-version = "0.18.0"
+name = "multiparty"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182"
+checksum = "ed1ec6589a6d4a1e0b33b4c0a3f6ee96dfba88ebdb3da51403fd7cf0a24a4b04"
dependencies = [
- "buf_redux",
+ "bytes",
+ "futures-core",
"httparse",
- "log",
- "mime",
- "mime_guess",
- "quick-error",
- "rand",
- "safemem",
- "tempfile",
- "twoway",
+ "memchr",
+ "pin-project-lite",
+ "try-lock",
]
[[package]]
@@ -2583,7 +2616,7 @@ dependencies = [
"jni-sys",
"ndk-sys",
"num_enum",
- "raw-window-handle 0.5.0",
+ "raw-window-handle 0.5.2",
"thiserror",
]
@@ -2616,10 +2649,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
dependencies = [
"darling 0.13.4",
- "proc-macro-crate 1.2.1",
+ "proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -2664,9 +2697,9 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
[[package]]
name = "nom"
-version = "7.1.2"
+version = "7.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5507769c4919c998e69e49c839d9dc6e693ede4cc4290d6ad8b41d4f09c548c"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
dependencies = [
"memchr",
"minimal-lexical",
@@ -2714,23 +2747,23 @@ dependencies = [
[[package]]
name = "num_enum"
-version = "0.5.7"
+version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
+checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
dependencies = [
"num_enum_derive",
]
[[package]]
name = "num_enum_derive"
-version = "0.5.7"
+version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
+checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
dependencies = [
- "proc-macro-crate 1.2.1",
+ "proc-macro-crate 1.3.1",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -2810,9 +2843,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.17.0"
+version = "1.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
[[package]]
name = "open"
@@ -2826,15 +2859,15 @@ dependencies = [
[[package]]
name = "os_str_bytes"
-version = "6.4.1"
+version = "6.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
[[package]]
name = "ouroboros"
-version = "0.15.5"
+version = "0.15.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfbb50b356159620db6ac971c6d5c9ab788c9cc38a6f49619fca2a27acb062ca"
+checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
dependencies = [
"aliasable",
"ouroboros_macro",
@@ -2842,22 +2875,22 @@ dependencies = [
[[package]]
name = "ouroboros_macro"
-version = "0.15.5"
+version = "0.15.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a0d9d1a6191c4f391f87219d1ea42b23f09ee84d64763cd05ee6ea88d9f384d"
+checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
dependencies = [
"Inflector",
"proc-macro-error",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
name = "owned_ttf_parser"
-version = "0.18.0"
+version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a5f3c7ca08b6879e7965fb25e24d1f5eeb32ea73f9ad99b3854778a38c57e93"
+checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228"
dependencies = [
"ttf-parser",
]
@@ -2892,7 +2925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
"lock_api",
- "parking_lot_core 0.9.6",
+ "parking_lot_core 0.9.7",
]
[[package]]
@@ -2904,29 +2937,29 @@ dependencies = [
"cfg-if",
"instant",
"libc",
- "redox_syscall",
+ "redox_syscall 0.2.16",
"smallvec",
"winapi",
]
[[package]]
name = "parking_lot_core"
-version = "0.9.6"
+version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf"
+checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
dependencies = [
"cfg-if",
"libc",
- "redox_syscall",
+ "redox_syscall 0.2.16",
"smallvec",
- "windows-sys 0.42.0",
+ "windows-sys 0.45.0",
]
[[package]]
name = "paste"
-version = "1.0.11"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
+checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79"
[[package]]
name = "pathdiff"
@@ -2942,9 +2975,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
[[package]]
name = "petgraph"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
+checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4"
dependencies = [
"fixedbitset",
"indexmap",
@@ -2967,7 +3000,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -2990,16 +3023,16 @@ checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
[[package]]
name = "plist"
-version = "1.3.1"
+version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225"
+checksum = "9bd9647b268a3d3e14ff09c23201133a62589c658db02bb7388c7246aafe0590"
dependencies = [
- "base64 0.13.1",
+ "base64 0.21.0",
"indexmap",
"line-wrap",
+ "quick-xml",
"serde",
- "time 0.3.17",
- "xml-rs",
+ "time 0.3.20",
]
[[package]]
@@ -3026,11 +3059,11 @@ dependencies = [
[[package]]
name = "postgres-protocol"
-version = "0.6.4"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "878c6cbf956e03af9aa8204b407b9cbf47c072164800aa918c516cd4b056c50c"
+checksum = "78b7fa9f396f51dffd61546fd8573ee20592287996568e6175ceb0f8699ad75d"
dependencies = [
- "base64 0.13.1",
+ "base64 0.21.0",
"byteorder",
"bytes",
"fallible-iterator",
@@ -3044,9 +3077,9 @@ dependencies = [
[[package]]
name = "postgres-types"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73d946ec7d256b04dfadc4e6a3292324e6f417124750fc5c0950f981b703a0f1"
+checksum = "f028f05971fe20f512bcc679e2c10227e57809a3af86a7606304435bc8896cd6"
dependencies = [
"bytes",
"chrono",
@@ -3054,7 +3087,7 @@ dependencies = [
"postgres-protocol",
"serde",
"serde_json",
- "time 0.3.17",
+ "time 0.3.20",
"uuid",
]
@@ -3066,12 +3099,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "prettyplease"
-version = "0.1.23"
+version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78"
+checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
dependencies = [
"proc-macro2",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -3080,18 +3113,17 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
dependencies = [
- "toml",
+ "toml 0.5.11",
]
[[package]]
name = "proc-macro-crate"
-version = "1.2.1"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
dependencies = [
"once_cell",
- "thiserror",
- "toml",
+ "toml_edit",
]
[[package]]
@@ -3103,7 +3135,7 @@ dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
"version_check",
]
@@ -3120,9 +3152,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.49"
+version = "1.0.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
+checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
dependencies = [
"unicode-ident",
]
@@ -3139,12 +3171,12 @@ dependencies = [
[[package]]
name = "prost"
-version = "0.11.6"
+version = "0.11.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698"
+checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537"
dependencies = [
"bytes",
- "prost-derive 0.11.6",
+ "prost-derive 0.11.8",
]
[[package]]
@@ -3156,7 +3188,7 @@ dependencies = [
"bytes",
"cfg-if",
"cmake",
- "heck 0.4.0",
+ "heck 0.4.1",
"itertools",
"lazy_static",
"log",
@@ -3179,20 +3211,20 @@ dependencies = [
"itertools",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
name = "prost-derive"
-version = "0.11.6"
+version = "0.11.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d"
+checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b"
dependencies = [
"anyhow",
"itertools",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -3207,12 +3239,11 @@ dependencies = [
[[package]]
name = "prost-types"
-version = "0.11.6"
+version = "0.11.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788"
+checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88"
dependencies = [
- "bytes",
- "prost 0.11.6",
+ "prost 0.11.8",
]
[[package]]
@@ -3232,20 +3263,23 @@ checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
-name = "quick-error"
-version = "1.2.3"
+name = "quick-xml"
+version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+checksum = "e5c1a97b1bc42b1d550bfb48d4262153fe400a12bab1511821736f7eac76d7e2"
+dependencies = [
+ "memchr",
+]
[[package]]
name = "quote"
-version = "1.0.23"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
dependencies = [
"proc-macro2",
]
@@ -3291,12 +3325,9 @@ dependencies = [
[[package]]
name = "raw-window-handle"
-version = "0.5.0"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a"
-dependencies = [
- "cty",
-]
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
[[package]]
name = "redox_syscall"
@@ -3307,6 +3338,15 @@ dependencies = [
"bitflags",
]
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags",
+]
+
[[package]]
name = "redox_users"
version = "0.4.3"
@@ -3314,15 +3354,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
"getrandom",
- "redox_syscall",
+ "redox_syscall 0.2.16",
"thiserror",
]
[[package]]
name = "regex"
-version = "1.7.1"
+version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
dependencies = [
"aho-corasick",
"memchr",
@@ -3340,35 +3380,26 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.6.28"
+version = "0.6.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "rend"
-version = "0.3.6"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95"
+checksum = "581008d2099240d37fb08d77ad713bcaec2c4d89d50b5b21a8bb1996bbab68ab"
dependencies = [
"bytecheck",
]
[[package]]
name = "reqwest"
-version = "0.11.13"
+version = "0.11.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c"
+checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254"
dependencies = [
- "base64 0.13.1",
+ "base64 0.21.0",
"bytes",
"encoding_rs",
"futures-core",
@@ -3386,7 +3417,7 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"rustls",
- "rustls-pemfile 1.0.2",
+ "rustls-pemfile",
"serde",
"serde_json",
"serde_urlencoded",
@@ -3442,9 +3473,9 @@ dependencies = [
[[package]]
name = "rkyv"
-version = "0.7.39"
+version = "0.7.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15"
+checksum = "21499ed91807f07ae081880aabb2ccc0235e9d88011867d984525e9a4c3cfa3e"
dependencies = [
"bytecheck",
"hashbrown 0.12.3",
@@ -3456,13 +3487,13 @@ dependencies = [
[[package]]
name = "rkyv_derive"
-version = "0.7.39"
+version = "0.7.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4"
+checksum = "ac1c672430eb41556291981f45ca900a0239ad007242d1cb4b4167af842db666"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -3478,9 +3509,9 @@ dependencies = [
[[package]]
name = "rust_decimal"
-version = "1.27.0"
+version = "1.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c321ee4e17d2b7abe12b5d20c1231db708dd36185c8a21e9de5fed6da4dbe9"
+checksum = "26bd36b60561ee1fb5ec2817f198b6fd09fa571c897a5e86d1487cfc2b096dfc"
dependencies = [
"arrayvec 0.7.2",
"borsh",
@@ -3503,6 +3534,20 @@ dependencies = [
"semver",
]
+[[package]]
+name = "rustix"
+version = "0.37.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aef160324be24d31a62147fae491c14d2204a3865c7ca8c3b0d7f7bcb3ea635"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "rustls"
version = "0.20.8"
@@ -3515,15 +3560,6 @@ dependencies = [
"webpki",
]
-[[package]]
-name = "rustls-pemfile"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9"
-dependencies = [
- "base64 0.13.1",
-]
-
[[package]]
name = "rustls-pemfile"
version = "1.0.2"
@@ -3535,15 +3571,15 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.11"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"
+checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
[[package]]
name = "ryu"
-version = "1.0.12"
+version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
[[package]]
name = "safe_arch"
@@ -3583,9 +3619,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "scratch"
-version = "1.0.3"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
+checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
[[package]]
name = "sct"
@@ -3630,7 +3666,7 @@ dependencies = [
"serde",
"serde_json",
"sqlx",
- "time 0.3.17",
+ "time 0.3.20",
"tracing",
"url",
"uuid",
@@ -3646,7 +3682,7 @@ dependencies = [
"heck 0.3.3",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -3661,7 +3697,7 @@ dependencies = [
"sea-query-derive",
"sea-query-driver",
"serde_json",
- "time 0.3.17",
+ "time 0.3.20",
"uuid",
]
@@ -3674,7 +3710,7 @@ dependencies = [
"heck 0.3.3",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
"thiserror",
]
@@ -3686,7 +3722,7 @@ checksum = "7d7f0cae2e7ebb2affc378c40bc343c8197181d601d6755c3e66f1bd18cac253"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -3708,7 +3744,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -3734,9 +3770,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
-version = "1.0.152"
+version = "1.0.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
dependencies = [
"serde_derive",
]
@@ -3754,20 +3790,20 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.152"
+version = "1.0.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
name = "serde_json"
-version = "1.0.91"
+version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
+checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
dependencies = [
"itoa",
"ryu",
@@ -3776,9 +3812,18 @@ dependencies = [
[[package]]
name = "serde_path_to_error"
-version = "0.1.9"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b04f22b563c91331a10074bda3dd5492e3cc39d56bd557e91c0af42b6c7341"
+checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4"
dependencies = [
"serde",
]
@@ -3816,17 +3861,6 @@ dependencies = [
"pkg-config",
]
-[[package]]
-name = "sha-1"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
[[package]]
name = "sha1"
version = "0.6.1"
@@ -3873,11 +3907,17 @@ dependencies = [
"lazy_static",
]
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
[[package]]
name = "slab"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
dependencies = [
"autocfg",
]
@@ -3928,9 +3968,9 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.4.7"
+version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
dependencies = [
"libc",
"winapi",
@@ -3944,9 +3984,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]]
name = "spin"
-version = "0.9.4"
+version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
"lock_api",
]
@@ -3964,9 +4004,9 @@ dependencies = [
[[package]]
name = "sqlx"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428"
+checksum = "f8de3b03a925878ed54a954f621e64bf55a3c1bd29652d0d1a17830405350188"
dependencies = [
"sqlx-core",
"sqlx-macros",
@@ -3974,9 +4014,9 @@ dependencies = [
[[package]]
name = "sqlx-core"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105"
+checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029"
dependencies = [
"ahash 0.7.6",
"atoi",
@@ -4009,7 +4049,7 @@ dependencies = [
"percent-encoding",
"rust_decimal",
"rustls",
- "rustls-pemfile 1.0.2",
+ "rustls-pemfile",
"serde",
"serde_json",
"sha2",
@@ -4018,7 +4058,7 @@ dependencies = [
"sqlx-rt",
"stringprep",
"thiserror",
- "time 0.3.17",
+ "time 0.3.20",
"tokio-stream",
"url",
"uuid",
@@ -4027,13 +4067,13 @@ dependencies = [
[[package]]
name = "sqlx-macros"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9"
+checksum = "9966e64ae989e7e575b19d7265cb79d7fc3cbbdf179835cb0d716f294c2049c9"
dependencies = [
"dotenvy",
"either",
- "heck 0.4.0",
+ "heck 0.4.1",
"once_cell",
"proc-macro2",
"quote",
@@ -4041,15 +4081,15 @@ dependencies = [
"sha2",
"sqlx-core",
"sqlx-rt",
- "syn",
+ "syn 1.0.109",
"url",
]
[[package]]
name = "sqlx-rt"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396"
+checksum = "804d3f245f894e61b1e6263c84b23ca675d96753b5abfd5cc8597d86806e8024"
dependencies = [
"once_cell",
"tokio",
@@ -4088,7 +4128,7 @@ dependencies = [
"quote",
"serde",
"serde_derive",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -4104,7 +4144,7 @@ dependencies = [
"serde_derive",
"serde_json",
"sha1 0.6.1",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -4143,9 +4183,20 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
-version = "1.0.107"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
dependencies = [
"proc-macro2",
"quote",
@@ -4154,9 +4205,9 @@ dependencies = [
[[package]]
name = "sync_wrapper"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
[[package]]
name = "syntect"
@@ -4183,36 +4234,35 @@ dependencies = [
[[package]]
name = "system-deps"
-version = "6.0.3"
+version = "6.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff"
+checksum = "555fc8147af6256f3931a36bb83ad0023240ce9cf2b319dec8236fd1f220b05f"
dependencies = [
"cfg-expr",
- "heck 0.4.0",
+ "heck 0.4.1",
"pkg-config",
- "toml",
+ "toml 0.7.3",
"version-compare",
]
[[package]]
name = "tempfile"
-version = "3.3.0"
+version = "3.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
dependencies = [
"cfg-if",
"fastrand",
- "libc",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
+ "redox_syscall 0.3.5",
+ "rustix",
+ "windows-sys 0.45.0",
]
[[package]]
name = "termcolor"
-version = "1.1.3"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
dependencies = [
"winapi-util",
]
@@ -4225,30 +4275,31 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[package]]
name = "thiserror"
-version = "1.0.38"
+version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.38"
+version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
name = "thread_local"
-version = "1.1.4"
+version = "1.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
dependencies = [
+ "cfg-if",
"once_cell",
]
@@ -4265,9 +4316,9 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.17"
+version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
+checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
dependencies = [
"itoa",
"serde",
@@ -4283,9 +4334,9 @@ checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
[[package]]
name = "time-macros"
-version = "0.2.6"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
+checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
dependencies = [
"time-core",
]
@@ -4326,27 +4377,26 @@ dependencies = [
[[package]]
name = "tinyvec_macros"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.25.0"
+version = "1.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
+checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001"
dependencies = [
"autocfg",
"bytes",
"libc",
- "memchr",
"mio",
"num_cpus",
"pin-project-lite",
"socket2",
"tokio-macros",
"tracing",
- "windows-sys 0.42.0",
+ "windows-sys 0.45.0",
]
[[package]]
@@ -4361,13 +4411,13 @@ dependencies = [
[[package]]
name = "tokio-macros"
-version = "1.8.2"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
+checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.13",
]
[[package]]
@@ -4383,9 +4433,9 @@ dependencies = [
[[package]]
name = "tokio-stream"
-version = "0.1.11"
+version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce"
+checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313"
dependencies = [
"futures-core",
"pin-project-lite",
@@ -4394,9 +4444,9 @@ dependencies = [
[[package]]
name = "tokio-tungstenite"
-version = "0.17.2"
+version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181"
+checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd"
dependencies = [
"futures-util",
"log",
@@ -4406,9 +4456,9 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.4"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740"
+checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2"
dependencies = [
"bytes",
"futures-core",
@@ -4420,11 +4470,45 @@ dependencies = [
[[package]]
name = "toml"
-version = "0.5.10"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
+checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
dependencies = [
+ "indexmap",
"serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
]
[[package]]
@@ -4467,7 +4551,7 @@ checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb"
dependencies = [
"async-stream",
"async-trait",
- "axum 0.6.2",
+ "axum 0.6.12",
"base64 0.13.1",
"bytes",
"futures-core",
@@ -4479,8 +4563,8 @@ dependencies = [
"hyper-timeout",
"percent-encoding",
"pin-project",
- "prost 0.11.6",
- "prost-derive 0.11.6",
+ "prost 0.11.8",
+ "prost-derive 0.11.8",
"tokio",
"tokio-stream",
"tokio-util",
@@ -4501,7 +4585,7 @@ dependencies = [
"proc-macro2",
"prost-build",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -4594,7 +4678,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -4657,9 +4741,9 @@ checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633"
[[package]]
name = "tungstenite"
-version = "0.17.3"
+version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0"
+checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788"
dependencies = [
"base64 0.13.1",
"byteorder",
@@ -4668,21 +4752,12 @@ dependencies = [
"httparse",
"log",
"rand",
- "sha-1",
+ "sha1 0.10.5",
"thiserror",
"url",
"utf-8",
]
-[[package]]
-name = "twoway"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
-dependencies = [
- "memchr",
-]
-
[[package]]
name = "typenum"
version = "1.16.0"
@@ -4700,15 +4775,15 @@ dependencies = [
[[package]]
name = "unicode-bidi"
-version = "0.3.8"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]]
name = "unicode-ident"
-version = "1.0.6"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
[[package]]
name = "unicode-normalization"
@@ -4721,9 +4796,9 @@ dependencies = [
[[package]]
name = "unicode-segmentation"
-version = "1.10.0"
+version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
[[package]]
name = "unicode-width"
@@ -4763,9 +4838,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
[[package]]
name = "uuid"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
+checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79"
dependencies = [
"getrandom",
"rand",
@@ -4776,13 +4851,13 @@ dependencies = [
[[package]]
name = "uuid-macro-internal"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73bc89f2894593e665241e0052c3791999e6787b7c4831daa0a5c2e637e276d8"
+checksum = "c1b300a878652a387d2a0de915bdae8f1a548f0c6d45e072fe2688794b656cc9"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -4817,12 +4892,11 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "walkdir"
-version = "2.3.2"
+version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
dependencies = [
"same-file",
- "winapi",
"winapi-util",
]
@@ -4838,9 +4912,9 @@ dependencies = [
[[package]]
name = "warp"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d"
+checksum = "27e1a710288f0f91a98dd8a74f05b76a10768db245ce183edf64dc1afdc3016c"
dependencies = [
"bytes",
"futures-channel",
@@ -4851,10 +4925,10 @@ dependencies = [
"log",
"mime",
"mime_guess",
- "multipart",
+ "multiparty",
"percent-encoding",
"pin-project",
- "rustls-pemfile 0.2.1",
+ "rustls-pemfile",
"scoped-tls",
"serde",
"serde_json",
@@ -4902,15 +4976,15 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.33"
+version = "0.4.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
+checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
dependencies = [
"cfg-if",
"js-sys",
@@ -4936,7 +5010,7 @@ checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -5060,9 +5134,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.60"
+version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -5070,9 +5144,9 @@ dependencies = [
[[package]]
name = "webbrowser"
-version = "0.8.7"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97d1fa1e5c829b2bf9eb1e28fb950248b797cd6a04866fbdfa8bc31e5eef4c78"
+checksum = "579cc485bd5ce5bfa0d738e4921dd0b956eca9800be1fd2e5257ebe95bc4617e"
dependencies = [
"core-foundation",
"dirs",
@@ -5080,7 +5154,7 @@ dependencies = [
"log",
"ndk-context",
"objc",
- "raw-window-handle 0.5.0",
+ "raw-window-handle 0.5.2",
"url",
"web-sys",
]
@@ -5106,9 +5180,9 @@ dependencies = [
[[package]]
name = "which"
-version = "4.3.0"
+version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
+checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
dependencies = [
"either",
"libc",
@@ -5175,13 +5249,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0286ba339aa753e70765d521bb0242cc48e1194562bfa2a2ad7ac8a6de28f5d5"
dependencies = [
"windows-implement",
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets 0.48.0",
]
[[package]]
@@ -5192,7 +5275,7 @@ checksum = "9539b6bd3eadbd9de66c9666b22d802b833da7e996bc06896142e09854a61767"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 1.0.109",
]
[[package]]
@@ -5214,13 +5297,13 @@ version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
]
[[package]]
@@ -5229,29 +5312,59 @@ version = "0.45.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
dependencies = [
- "windows-targets",
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.0",
]
[[package]]
name = "windows-targets"
-version = "0.42.1"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
]
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
[[package]]
name = "windows_aarch64_msvc"
@@ -5267,9 +5380,15 @@ checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
[[package]]
name = "windows_i686_gnu"
@@ -5285,9 +5404,15 @@ checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1"
[[package]]
name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
[[package]]
name = "windows_i686_msvc"
@@ -5303,9 +5428,15 @@ checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c"
[[package]]
name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
[[package]]
name = "windows_x86_64_gnu"
@@ -5321,15 +5452,27 @@ checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
[[package]]
name = "windows_x86_64_msvc"
@@ -5345,9 +5488,15 @@ checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
name = "winit"
@@ -5371,7 +5520,7 @@ dependencies = [
"parking_lot 0.12.1",
"percent-encoding",
"raw-window-handle 0.4.3",
- "raw-window-handle 0.5.0",
+ "raw-window-handle 0.5.2",
"sctk-adwaita",
"smithay-client-toolkit",
"wasm-bindgen",
@@ -5382,6 +5531,15 @@ dependencies = [
"x11-dl",
]
+[[package]]
+name = "winnow"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "winreg"
version = "0.10.1"
@@ -5402,12 +5560,12 @@ dependencies = [
[[package]]
name = "x11-dl"
-version = "2.20.1"
+version = "2.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
dependencies = [
- "lazy_static",
"libc",
+ "once_cell",
"pkg-config",
]
diff --git a/bootstrap-action.sh b/bootstrap-action.sh
index 710bd44..638f63f 100755
--- a/bootstrap-action.sh
+++ b/bootstrap-action.sh
@@ -25,14 +25,22 @@ case $ID in
;;
"fedora" | "rocky")
packages=(gobject-introspection-devel cairo-devel atk-devel pango-devel gdk-pixbuf2-devel gtk3-devel clang curl cmake git)
+ dnf="$(which dnf)"
+
+ $dnf update -y
+
+ if [ -f "$(command -v dnf5)" ]; then
+ dnf="$(which dnf5)"
+ sudo $dnf group install development-tools -y
+ else
+ $dnf groupinstall "Development Tools" -y
+ fi
- dnf update -y
- dnf groupinstall "Development Tools" -y
if [[ "$ID" == "rocky" && $(rpm -E %rhel) -ge 9 ]]; then
- dnf --enablerepo=crb --allowerasing install ${packages[@]} -y
+ $dnf --enablerepo=crb --allowerasing install ${packages[@]} -y
else
- dnf install ${packages[@]} -y
+ $dnf install ${packages[@]} -y
fi
;;
"centos")
@@ -48,4 +56,4 @@ esac
if [[ ! -z $(which rustup 2>/dev/null ) ]]; then
echo -e "\nInstalling wasm32-unknown-unknown Rust target..."
rustup target install wasm32-unknown-unknown
-fi
+fi
\ No newline at end of file
diff --git a/bootstrap-build.sh b/bootstrap-build.sh
index 94514c0..3aefe37 100755
--- a/bootstrap-build.sh
+++ b/bootstrap-build.sh
@@ -19,8 +19,16 @@ case $ID in
sudo apt install libglib2.0-dev libpango1.0-dev "$pixbuf_dev" libatk1.0-dev libgtk-3-dev libxcb-shape0-dev libxcb-xfixes0-dev curl -y
;;
"fedora")
- sudo dnf groupinstall "Development Tools" -y
- sudo dnf install gobject-introspection-devel cairo-devel atk-devel pango-devel gdk-pixbuf2-devel gtk3-devel clang curl cmake -y
+ dnf="$(which dnf)"
+
+ if [ -f "$(command -v dnf5)" ]; then
+ dnf="$(which dnf5)"
+ sudo $dnf group install development-tools -y
+ else
+ sudo $dnf groupinstall "Development Tools" -y
+ fi
+
+ sudo $dnf install gobject-introspection-devel cairo-devel atk-devel pango-devel gdk-pixbuf2-devel gtk3-devel clang curl cmake -y
;;
"arch")
# TODO: Add Arch Linux packages
@@ -42,4 +50,4 @@ rustup target install wasm32-unknown-unknown
echo -e "\nInstalling trunk..."
cargo install trunk
-echo -e "\nIf you're inside a toolbox or distrobox, you need to install the necessary display drivers for your GPU *inside* the container otherwise you will run into OpenGL issues."
+echo -e "\nIf you're inside a toolbox or distrobox, you need to install the necessary display drivers for your GPU *inside* the container otherwise you will run into OpenGL issues."
\ No newline at end of file
diff --git a/codectrl-web/.editorconfig b/codectrl-web/.editorconfig
deleted file mode 100644
index 8b4c9f9..0000000
--- a/codectrl-web/.editorconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-root = true
-
-[*]
-end_of_line = lf
-insert_final_newline = false
-indent_style = tab
-indent_size = 2
-
-[*.elm]
-indent_style = space
diff --git a/codectrl-web/.gitignore b/codectrl-web/.gitignore
deleted file mode 100644
index 47bc50b..0000000
--- a/codectrl-web/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-.DS_Store
-node_modules
-/build
-/.svelte-kit
-/package
-.env
-.env.*
-!.env.example
-vite.config.js.timestamp-*
-vite.config.ts.timestamp-*
-!package.json
\ No newline at end of file
diff --git a/codectrl-web/.npmrc b/codectrl-web/.npmrc
deleted file mode 100644
index b6f27f1..0000000
--- a/codectrl-web/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-engine-strict=true
diff --git a/codectrl-web/.prettierrc b/codectrl-web/.prettierrc
deleted file mode 100644
index f3ab9c0..0000000
--- a/codectrl-web/.prettierrc
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "useTabs": true,
- "singleQuote": true,
- "trailingComma": "none",
- "printWidth": 100,
- "tabWidth": 2,
- "plugins": ["prettier-plugin-svelte"],
- "pluginSearchDirs": ["."],
- "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
-}
\ No newline at end of file
diff --git a/codectrl-web/README.md b/codectrl-web/README.md
deleted file mode 100644
index 5c91169..0000000
--- a/codectrl-web/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# create-svelte
-
-Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
-
-## Creating a project
-
-If you're seeing this, you've probably already done this step. Congrats!
-
-```bash
-# create a new project in the current directory
-npm create svelte@latest
-
-# create a new project in my-app
-npm create svelte@latest my-app
-```
-
-## Developing
-
-Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
-
-```bash
-npm run dev
-
-# or start the server and open the app in a new browser tab
-npm run dev -- --open
-```
-
-## Building
-
-To create a production version of your app:
-
-```bash
-npm run build
-```
-
-You can preview the production build with `npm run preview`.
-
-> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
diff --git a/codectrl-web/elm.json b/codectrl-web/elm.json
deleted file mode 100644
index fd67dcd..0000000
--- a/codectrl-web/elm.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "type": "application",
- "source-directories": [
- "src/routes/app/(app)/"
- ],
- "elm-version": "0.19.1",
- "dependencies": {
- "direct": {
- "elm/browser": "1.0.2",
- "elm/core": "1.0.5",
- "elm/html": "1.0.0",
- "hmsk/elm-vite-plugin-helper": "1.0.1"
- },
- "indirect": {
- "elm/json": "1.1.3",
- "elm/time": "1.0.0",
- "elm/url": "1.0.0",
- "elm/virtual-dom": "1.0.3"
- }
- },
- "test-dependencies": {
- "direct": {},
- "indirect": {}
- }
-}
diff --git a/codectrl-web/package.json b/codectrl-web/package.json
deleted file mode 100644
index 42158ea..0000000
--- a/codectrl-web/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "codectrl-web",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "dev": "vite dev",
- "build": "vite build",
- "preview": "vite preview",
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
- },
- "devDependencies": {
- "@sveltejs/adapter-auto": "^2.0.0",
- "@sveltejs/kit": "^1.5.0",
- "autoprefixer": "^10.4.14",
- "elm-format": "^0.8.6",
- "elm-test": "^0.19.1-revision12",
- "postcss": "^8.4.21",
- "prettier": "^2.8.4",
- "prettier-plugin-svelte": "^2.9.0",
- "svelte": "^3.54.0",
- "svelte-check": "^3.0.1",
- "svelte-preprocess": "^5.0.1",
- "tailwindcss": "^3.2.7",
- "tslib": "^2.4.1",
- "typescript": "^4.9.3",
- "vite": "^4.0.0",
- "vite-plugin-elm": "^2.7.2"
- },
- "type": "module",
- "dependencies": {
- "@lucia-auth/adapter-prisma": "^0.6.0",
- "@lucia-auth/oauth": "^0.7.0",
- "@lucia-auth/sveltekit": "^0.6.10",
- "@prisma/client": "^4.11.0",
- "lucia-auth": "^0.9.1"
- }
-}
diff --git a/codectrl-web/postcss.config.cjs b/codectrl-web/postcss.config.cjs
deleted file mode 100644
index 33ad091..0000000
--- a/codectrl-web/postcss.config.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
-}
diff --git a/codectrl-web/prisma/schema.prisma b/codectrl-web/prisma/schema.prisma
deleted file mode 100644
index e5c146d..0000000
--- a/codectrl-web/prisma/schema.prisma
+++ /dev/null
@@ -1,47 +0,0 @@
-// This is your Prisma schema file,
-// learn more about it in the docs: https://pris.ly/d/prisma-schema
-
-generator client {
- provider = "prisma-client-js"
-}
-
-datasource db {
- provider = "mysql"
- url = env("DATABASE_URL")
- relationMode = "prisma"
-}
-
-model User {
- id String @id @unique
- session Session[]
- Key Key[]
- username String
- name String
- email String
- profile_picture String?
-
- @@map("user")
-}
-
-model Session {
- id String @id @unique
- user_id String
- active_expires BigInt
- idle_expires BigInt
- user User @relation(references: [id], fields: [user_id], onDelete: Cascade)
-
- @@index([user_id])
- @@map("session")
-}
-
-model Key {
- id String @id @unique
- hashed_password String?
- user_id String
- primary Boolean
- expires BigInt?
- user User @relation(references: [id], fields: [user_id], onDelete: Cascade)
-
- @@index([user_id])
- @@map("key")
-}
diff --git a/codectrl-web/src/app.css b/codectrl-web/src/app.css
deleted file mode 100644
index bd6213e..0000000
--- a/codectrl-web/src/app.css
+++ /dev/null
@@ -1,3 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
\ No newline at end of file
diff --git a/codectrl-web/src/app.d.ts b/codectrl-web/src/app.d.ts
deleted file mode 100644
index 9f377d2..0000000
--- a/codectrl-web/src/app.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-// See https://kit.svelte.dev/docs/types#app
-// for information about these interfaces
-declare global {
- ///
- declare namespace Lucia {
- type Auth = import('$lib/server/lucia').Auth;
- type GithubAuth = import('$lib/server/lucia').GithubAuth;
- type UserAttributes = {
- username: string;
- name: string;
- email: string;
- profile_picture: string;
- };
- }
-
- ///
- declare namespace App {
- interface Locals {
- validate: import('@lucia-auth/sveltekit').Validate;
- validateUser: import('@lucia-auth/sveltekit').ValidateUser;
- setSession: import('@lucia-auth/sveltekit').SetSession;
- }
- }
-}
-
-export {};
diff --git a/codectrl-web/src/app.html b/codectrl-web/src/app.html
deleted file mode 100644
index effe0d0..0000000
--- a/codectrl-web/src/app.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
- %sveltekit.head%
-
-
- %sveltekit.body%
-
-
diff --git a/codectrl-web/src/hooks.server.ts b/codectrl-web/src/hooks.server.ts
deleted file mode 100644
index dbde77c..0000000
--- a/codectrl-web/src/hooks.server.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { auth } from '$lib/server/lucia';
-import { handleHooks } from '@lucia-auth/sveltekit';
-
-export const handle = handleHooks(auth);
diff --git a/codectrl-web/src/lib/client/app/main.js b/codectrl-web/src/lib/client/app/main.js
deleted file mode 100644
index 325c0d4..0000000
--- a/codectrl-web/src/lib/client/app/main.js
+++ /dev/null
@@ -1,5199 +0,0 @@
-(function(scope){
-'use strict';
-
-function F(arity, fun, wrapper) {
- wrapper.a = arity;
- wrapper.f = fun;
- return wrapper;
-}
-
-function F2(fun) {
- return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })
-}
-function F3(fun) {
- return F(3, fun, function(a) {
- return function(b) { return function(c) { return fun(a, b, c); }; };
- });
-}
-function F4(fun) {
- return F(4, fun, function(a) { return function(b) { return function(c) {
- return function(d) { return fun(a, b, c, d); }; }; };
- });
-}
-function F5(fun) {
- return F(5, fun, function(a) { return function(b) { return function(c) {
- return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };
- });
-}
-function F6(fun) {
- return F(6, fun, function(a) { return function(b) { return function(c) {
- return function(d) { return function(e) { return function(f) {
- return fun(a, b, c, d, e, f); }; }; }; }; };
- });
-}
-function F7(fun) {
- return F(7, fun, function(a) { return function(b) { return function(c) {
- return function(d) { return function(e) { return function(f) {
- return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };
- });
-}
-function F8(fun) {
- return F(8, fun, function(a) { return function(b) { return function(c) {
- return function(d) { return function(e) { return function(f) {
- return function(g) { return function(h) {
- return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };
- });
-}
-function F9(fun) {
- return F(9, fun, function(a) { return function(b) { return function(c) {
- return function(d) { return function(e) { return function(f) {
- return function(g) { return function(h) { return function(i) {
- return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };
- });
-}
-
-function A2(fun, a, b) {
- return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
-}
-function A3(fun, a, b, c) {
- return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);
-}
-function A4(fun, a, b, c, d) {
- return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);
-}
-function A5(fun, a, b, c, d, e) {
- return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);
-}
-function A6(fun, a, b, c, d, e, f) {
- return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);
-}
-function A7(fun, a, b, c, d, e, f, g) {
- return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);
-}
-function A8(fun, a, b, c, d, e, f, g, h) {
- return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);
-}
-function A9(fun, a, b, c, d, e, f, g, h, i) {
- return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);
-}
-
-console.warn('Compiled in DEV mode. Follow the advice at https://elm-lang.org/0.19.1/optimize for better performance and smaller assets.');
-
-
-// EQUALITY
-
-function _Utils_eq(x, y)
-{
- for (
- var pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);
- isEqual && (pair = stack.pop());
- isEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)
- )
- {}
-
- return isEqual;
-}
-
-function _Utils_eqHelp(x, y, depth, stack)
-{
- if (x === y)
- {
- return true;
- }
-
- if (typeof x !== 'object' || x === null || y === null)
- {
- typeof x === 'function' && _Debug_crash(5);
- return false;
- }
-
- if (depth > 100)
- {
- stack.push(_Utils_Tuple2(x,y));
- return true;
- }
-
- /**/
- if (x.$ === 'Set_elm_builtin')
- {
- x = $elm$core$Set$toList(x);
- y = $elm$core$Set$toList(y);
- }
- if (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')
- {
- x = $elm$core$Dict$toList(x);
- y = $elm$core$Dict$toList(y);
- }
- //*/
-
- /**_UNUSED/
- if (x.$ < 0)
- {
- x = $elm$core$Dict$toList(x);
- y = $elm$core$Dict$toList(y);
- }
- //*/
-
- for (var key in x)
- {
- if (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))
- {
- return false;
- }
- }
- return true;
-}
-
-var _Utils_equal = F2(_Utils_eq);
-var _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });
-
-
-
-// COMPARISONS
-
-// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on
-// the particular integer values assigned to LT, EQ, and GT.
-
-function _Utils_cmp(x, y, ord)
-{
- if (typeof x !== 'object')
- {
- return x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;
- }
-
- /**/
- if (x instanceof String)
- {
- var a = x.valueOf();
- var b = y.valueOf();
- return a === b ? 0 : a < b ? -1 : 1;
- }
- //*/
-
- /**_UNUSED/
- if (typeof x.$ === 'undefined')
- //*/
- /**/
- if (x.$[0] === '#')
- //*/
- {
- return (ord = _Utils_cmp(x.a, y.a))
- ? ord
- : (ord = _Utils_cmp(x.b, y.b))
- ? ord
- : _Utils_cmp(x.c, y.c);
- }
-
- // traverse conses until end of a list or a mismatch
- for (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES
- return ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);
-}
-
-var _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });
-var _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });
-var _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });
-var _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });
-
-var _Utils_compare = F2(function(x, y)
-{
- var n = _Utils_cmp(x, y);
- return n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;
-});
-
-
-// COMMON VALUES
-
-var _Utils_Tuple0_UNUSED = 0;
-var _Utils_Tuple0 = { $: '#0' };
-
-function _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; }
-function _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; }
-
-function _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; }
-function _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }
-
-function _Utils_chr_UNUSED(c) { return c; }
-function _Utils_chr(c) { return new String(c); }
-
-
-// RECORDS
-
-function _Utils_update(oldRecord, updatedFields)
-{
- var newRecord = {};
-
- for (var key in oldRecord)
- {
- newRecord[key] = oldRecord[key];
- }
-
- for (var key in updatedFields)
- {
- newRecord[key] = updatedFields[key];
- }
-
- return newRecord;
-}
-
-
-// APPEND
-
-var _Utils_append = F2(_Utils_ap);
-
-function _Utils_ap(xs, ys)
-{
- // append Strings
- if (typeof xs === 'string')
- {
- return xs + ys;
- }
-
- // append Lists
- if (!xs.b)
- {
- return ys;
- }
- var root = _List_Cons(xs.a, ys);
- xs = xs.b
- for (var curr = root; xs.b; xs = xs.b) // WHILE_CONS
- {
- curr = curr.b = _List_Cons(xs.a, ys);
- }
- return root;
-}
-
-
-
-var _List_Nil_UNUSED = { $: 0 };
-var _List_Nil = { $: '[]' };
-
-function _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; }
-function _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; }
-
-
-var _List_cons = F2(_List_Cons);
-
-function _List_fromArray(arr)
-{
- var out = _List_Nil;
- for (var i = arr.length; i--; )
- {
- out = _List_Cons(arr[i], out);
- }
- return out;
-}
-
-function _List_toArray(xs)
-{
- for (var out = []; xs.b; xs = xs.b) // WHILE_CONS
- {
- out.push(xs.a);
- }
- return out;
-}
-
-var _List_map2 = F3(function(f, xs, ys)
-{
- for (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES
- {
- arr.push(A2(f, xs.a, ys.a));
- }
- return _List_fromArray(arr);
-});
-
-var _List_map3 = F4(function(f, xs, ys, zs)
-{
- for (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
- {
- arr.push(A3(f, xs.a, ys.a, zs.a));
- }
- return _List_fromArray(arr);
-});
-
-var _List_map4 = F5(function(f, ws, xs, ys, zs)
-{
- for (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
- {
- arr.push(A4(f, ws.a, xs.a, ys.a, zs.a));
- }
- return _List_fromArray(arr);
-});
-
-var _List_map5 = F6(function(f, vs, ws, xs, ys, zs)
-{
- for (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES
- {
- arr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));
- }
- return _List_fromArray(arr);
-});
-
-var _List_sortBy = F2(function(f, xs)
-{
- return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
- return _Utils_cmp(f(a), f(b));
- }));
-});
-
-var _List_sortWith = F2(function(f, xs)
-{
- return _List_fromArray(_List_toArray(xs).sort(function(a, b) {
- var ord = A2(f, a, b);
- return ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;
- }));
-});
-
-
-
-var _JsArray_empty = [];
-
-function _JsArray_singleton(value)
-{
- return [value];
-}
-
-function _JsArray_length(array)
-{
- return array.length;
-}
-
-var _JsArray_initialize = F3(function(size, offset, func)
-{
- var result = new Array(size);
-
- for (var i = 0; i < size; i++)
- {
- result[i] = func(offset + i);
- }
-
- return result;
-});
-
-var _JsArray_initializeFromList = F2(function (max, ls)
-{
- var result = new Array(max);
-
- for (var i = 0; i < max && ls.b; i++)
- {
- result[i] = ls.a;
- ls = ls.b;
- }
-
- result.length = i;
- return _Utils_Tuple2(result, ls);
-});
-
-var _JsArray_unsafeGet = F2(function(index, array)
-{
- return array[index];
-});
-
-var _JsArray_unsafeSet = F3(function(index, value, array)
-{
- var length = array.length;
- var result = new Array(length);
-
- for (var i = 0; i < length; i++)
- {
- result[i] = array[i];
- }
-
- result[index] = value;
- return result;
-});
-
-var _JsArray_push = F2(function(value, array)
-{
- var length = array.length;
- var result = new Array(length + 1);
-
- for (var i = 0; i < length; i++)
- {
- result[i] = array[i];
- }
-
- result[length] = value;
- return result;
-});
-
-var _JsArray_foldl = F3(function(func, acc, array)
-{
- var length = array.length;
-
- for (var i = 0; i < length; i++)
- {
- acc = A2(func, array[i], acc);
- }
-
- return acc;
-});
-
-var _JsArray_foldr = F3(function(func, acc, array)
-{
- for (var i = array.length - 1; i >= 0; i--)
- {
- acc = A2(func, array[i], acc);
- }
-
- return acc;
-});
-
-var _JsArray_map = F2(function(func, array)
-{
- var length = array.length;
- var result = new Array(length);
-
- for (var i = 0; i < length; i++)
- {
- result[i] = func(array[i]);
- }
-
- return result;
-});
-
-var _JsArray_indexedMap = F3(function(func, offset, array)
-{
- var length = array.length;
- var result = new Array(length);
-
- for (var i = 0; i < length; i++)
- {
- result[i] = A2(func, offset + i, array[i]);
- }
-
- return result;
-});
-
-var _JsArray_slice = F3(function(from, to, array)
-{
- return array.slice(from, to);
-});
-
-var _JsArray_appendN = F3(function(n, dest, source)
-{
- var destLen = dest.length;
- var itemsToCopy = n - destLen;
-
- if (itemsToCopy > source.length)
- {
- itemsToCopy = source.length;
- }
-
- var size = destLen + itemsToCopy;
- var result = new Array(size);
-
- for (var i = 0; i < destLen; i++)
- {
- result[i] = dest[i];
- }
-
- for (var i = 0; i < itemsToCopy; i++)
- {
- result[i + destLen] = source[i];
- }
-
- return result;
-});
-
-
-
-// LOG
-
-var _Debug_log_UNUSED = F2(function(tag, value)
-{
- return value;
-});
-
-var _Debug_log = F2(function(tag, value)
-{
- console.log(tag + ': ' + _Debug_toString(value));
- return value;
-});
-
-
-// TODOS
-
-function _Debug_todo(moduleName, region)
-{
- return function(message) {
- _Debug_crash(8, moduleName, region, message);
- };
-}
-
-function _Debug_todoCase(moduleName, region, value)
-{
- return function(message) {
- _Debug_crash(9, moduleName, region, value, message);
- };
-}
-
-
-// TO STRING
-
-function _Debug_toString_UNUSED(value)
-{
- return '';
-}
-
-function _Debug_toString(value)
-{
- return _Debug_toAnsiString(false, value);
-}
-
-function _Debug_toAnsiString(ansi, value)
-{
- if (typeof value === 'function')
- {
- return _Debug_internalColor(ansi, '');
- }
-
- if (typeof value === 'boolean')
- {
- return _Debug_ctorColor(ansi, value ? 'True' : 'False');
- }
-
- if (typeof value === 'number')
- {
- return _Debug_numberColor(ansi, value + '');
- }
-
- if (value instanceof String)
- {
- return _Debug_charColor(ansi, "'" + _Debug_addSlashes(value, true) + "'");
- }
-
- if (typeof value === 'string')
- {
- return _Debug_stringColor(ansi, '"' + _Debug_addSlashes(value, false) + '"');
- }
-
- if (typeof value === 'object' && '$' in value)
- {
- var tag = value.$;
-
- if (typeof tag === 'number')
- {
- return _Debug_internalColor(ansi, '');
- }
-
- if (tag[0] === '#')
- {
- var output = [];
- for (var k in value)
- {
- if (k === '$') continue;
- output.push(_Debug_toAnsiString(ansi, value[k]));
- }
- return '(' + output.join(',') + ')';
- }
-
- if (tag === 'Set_elm_builtin')
- {
- return _Debug_ctorColor(ansi, 'Set')
- + _Debug_fadeColor(ansi, '.fromList') + ' '
- + _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));
- }
-
- if (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')
- {
- return _Debug_ctorColor(ansi, 'Dict')
- + _Debug_fadeColor(ansi, '.fromList') + ' '
- + _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));
- }
-
- if (tag === 'Array_elm_builtin')
- {
- return _Debug_ctorColor(ansi, 'Array')
- + _Debug_fadeColor(ansi, '.fromList') + ' '
- + _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));
- }
-
- if (tag === '::' || tag === '[]')
- {
- var output = '[';
-
- value.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)
-
- for (; value.b; value = value.b) // WHILE_CONS
- {
- output += ',' + _Debug_toAnsiString(ansi, value.a);
- }
- return output + ']';
- }
-
- var output = '';
- for (var i in value)
- {
- if (i === '$') continue;
- var str = _Debug_toAnsiString(ansi, value[i]);
- var c0 = str[0];
- var parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '"' || str.indexOf(' ') < 0;
- output += ' ' + (parenless ? str : '(' + str + ')');
- }
- return _Debug_ctorColor(ansi, tag) + output;
- }
-
- if (typeof DataView === 'function' && value instanceof DataView)
- {
- return _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');
- }
-
- if (typeof File !== 'undefined' && value instanceof File)
- {
- return _Debug_internalColor(ansi, '<' + value.name + '>');
- }
-
- if (typeof value === 'object')
- {
- var output = [];
- for (var key in value)
- {
- var field = key[0] === '_' ? key.slice(1) : key;
- output.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));
- }
- if (output.length === 0)
- {
- return '{}';
- }
- return '{ ' + output.join(', ') + ' }';
- }
-
- return _Debug_internalColor(ansi, '');
-}
-
-function _Debug_addSlashes(str, isChar)
-{
- var s = str
- .replace(/\\/g, '\\\\')
- .replace(/\n/g, '\\n')
- .replace(/\t/g, '\\t')
- .replace(/\r/g, '\\r')
- .replace(/\v/g, '\\v')
- .replace(/\0/g, '\\0');
-
- if (isChar)
- {
- return s.replace(/\'/g, '\\\'');
- }
- else
- {
- return s.replace(/\"/g, '\\"');
- }
-}
-
-function _Debug_ctorColor(ansi, string)
-{
- return ansi ? '\x1b[96m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_numberColor(ansi, string)
-{
- return ansi ? '\x1b[95m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_stringColor(ansi, string)
-{
- return ansi ? '\x1b[93m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_charColor(ansi, string)
-{
- return ansi ? '\x1b[92m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_fadeColor(ansi, string)
-{
- return ansi ? '\x1b[37m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_internalColor(ansi, string)
-{
- return ansi ? '\x1b[36m' + string + '\x1b[0m' : string;
-}
-
-function _Debug_toHexDigit(n)
-{
- return String.fromCharCode(n < 10 ? 48 + n : 55 + n);
-}
-
-
-// CRASH
-
-
-function _Debug_crash_UNUSED(identifier)
-{
- throw new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');
-}
-
-
-function _Debug_crash(identifier, fact1, fact2, fact3, fact4)
-{
- switch(identifier)
- {
- case 0:
- throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');
-
- case 1:
- throw new Error('Browser.application programs cannot handle URLs like this:\n\n ' + document.location.href + '\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');
-
- case 2:
- var jsonErrorString = fact1;
- throw new Error('Problem with the flags given to your Elm program on initialization.\n\n' + jsonErrorString);
-
- case 3:
- var portName = fact1;
- throw new Error('There can only be one port named `' + portName + '`, but your program has multiple.');
-
- case 4:
- var portName = fact1;
- var problem = fact2;
- throw new Error('Trying to send an unexpected type of value through port `' + portName + '`:\n' + problem);
-
- case 5:
- throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');
-
- case 6:
- var moduleName = fact1;
- throw new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');
-
- case 8:
- var moduleName = fact1;
- var region = fact2;
- var message = fact3;
- throw new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\n\n' + message);
-
- case 9:
- var moduleName = fact1;
- var region = fact2;
- var value = fact3;
- var message = fact4;
- throw new Error(
- 'TODO in module `' + moduleName + '` from the `case` expression '
- + _Debug_regionToString(region) + '\n\nIt received the following value:\n\n '
- + _Debug_toString(value).replace('\n', '\n ')
- + '\n\nBut the branch that handles it says:\n\n ' + message.replace('\n', '\n ')
- );
-
- case 10:
- throw new Error('Bug in https://github.com/elm/virtual-dom/issues');
-
- case 11:
- throw new Error('Cannot perform mod 0. Division by zero error.');
- }
-}
-
-function _Debug_regionToString(region)
-{
- if (region.start.line === region.end.line)
- {
- return 'on line ' + region.start.line;
- }
- return 'on lines ' + region.start.line + ' through ' + region.end.line;
-}
-
-
-
-// MATH
-
-var _Basics_add = F2(function(a, b) { return a + b; });
-var _Basics_sub = F2(function(a, b) { return a - b; });
-var _Basics_mul = F2(function(a, b) { return a * b; });
-var _Basics_fdiv = F2(function(a, b) { return a / b; });
-var _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });
-var _Basics_pow = F2(Math.pow);
-
-var _Basics_remainderBy = F2(function(b, a) { return a % b; });
-
-// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf
-var _Basics_modBy = F2(function(modulus, x)
-{
- var answer = x % modulus;
- return modulus === 0
- ? _Debug_crash(11)
- :
- ((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))
- ? answer + modulus
- : answer;
-});
-
-
-// TRIGONOMETRY
-
-var _Basics_pi = Math.PI;
-var _Basics_e = Math.E;
-var _Basics_cos = Math.cos;
-var _Basics_sin = Math.sin;
-var _Basics_tan = Math.tan;
-var _Basics_acos = Math.acos;
-var _Basics_asin = Math.asin;
-var _Basics_atan = Math.atan;
-var _Basics_atan2 = F2(Math.atan2);
-
-
-// MORE MATH
-
-function _Basics_toFloat(x) { return x; }
-function _Basics_truncate(n) { return n | 0; }
-function _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }
-
-var _Basics_ceiling = Math.ceil;
-var _Basics_floor = Math.floor;
-var _Basics_round = Math.round;
-var _Basics_sqrt = Math.sqrt;
-var _Basics_log = Math.log;
-var _Basics_isNaN = isNaN;
-
-
-// BOOLEANS
-
-function _Basics_not(bool) { return !bool; }
-var _Basics_and = F2(function(a, b) { return a && b; });
-var _Basics_or = F2(function(a, b) { return a || b; });
-var _Basics_xor = F2(function(a, b) { return a !== b; });
-
-
-
-var _String_cons = F2(function(chr, str)
-{
- return chr + str;
-});
-
-function _String_uncons(string)
-{
- var word = string.charCodeAt(0);
- return !isNaN(word)
- ? $elm$core$Maybe$Just(
- 0xD800 <= word && word <= 0xDBFF
- ? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))
- : _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))
- )
- : $elm$core$Maybe$Nothing;
-}
-
-var _String_append = F2(function(a, b)
-{
- return a + b;
-});
-
-function _String_length(str)
-{
- return str.length;
-}
-
-var _String_map = F2(function(func, string)
-{
- var len = string.length;
- var array = new Array(len);
- var i = 0;
- while (i < len)
- {
- var word = string.charCodeAt(i);
- if (0xD800 <= word && word <= 0xDBFF)
- {
- array[i] = func(_Utils_chr(string[i] + string[i+1]));
- i += 2;
- continue;
- }
- array[i] = func(_Utils_chr(string[i]));
- i++;
- }
- return array.join('');
-});
-
-var _String_filter = F2(function(isGood, str)
-{
- var arr = [];
- var len = str.length;
- var i = 0;
- while (i < len)
- {
- var char = str[i];
- var word = str.charCodeAt(i);
- i++;
- if (0xD800 <= word && word <= 0xDBFF)
- {
- char += str[i];
- i++;
- }
-
- if (isGood(_Utils_chr(char)))
- {
- arr.push(char);
- }
- }
- return arr.join('');
-});
-
-function _String_reverse(str)
-{
- var len = str.length;
- var arr = new Array(len);
- var i = 0;
- while (i < len)
- {
- var word = str.charCodeAt(i);
- if (0xD800 <= word && word <= 0xDBFF)
- {
- arr[len - i] = str[i + 1];
- i++;
- arr[len - i] = str[i - 1];
- i++;
- }
- else
- {
- arr[len - i] = str[i];
- i++;
- }
- }
- return arr.join('');
-}
-
-var _String_foldl = F3(function(func, state, string)
-{
- var len = string.length;
- var i = 0;
- while (i < len)
- {
- var char = string[i];
- var word = string.charCodeAt(i);
- i++;
- if (0xD800 <= word && word <= 0xDBFF)
- {
- char += string[i];
- i++;
- }
- state = A2(func, _Utils_chr(char), state);
- }
- return state;
-});
-
-var _String_foldr = F3(function(func, state, string)
-{
- var i = string.length;
- while (i--)
- {
- var char = string[i];
- var word = string.charCodeAt(i);
- if (0xDC00 <= word && word <= 0xDFFF)
- {
- i--;
- char = string[i] + char;
- }
- state = A2(func, _Utils_chr(char), state);
- }
- return state;
-});
-
-var _String_split = F2(function(sep, str)
-{
- return str.split(sep);
-});
-
-var _String_join = F2(function(sep, strs)
-{
- return strs.join(sep);
-});
-
-var _String_slice = F3(function(start, end, str) {
- return str.slice(start, end);
-});
-
-function _String_trim(str)
-{
- return str.trim();
-}
-
-function _String_trimLeft(str)
-{
- return str.replace(/^\s+/, '');
-}
-
-function _String_trimRight(str)
-{
- return str.replace(/\s+$/, '');
-}
-
-function _String_words(str)
-{
- return _List_fromArray(str.trim().split(/\s+/g));
-}
-
-function _String_lines(str)
-{
- return _List_fromArray(str.split(/\r\n|\r|\n/g));
-}
-
-function _String_toUpper(str)
-{
- return str.toUpperCase();
-}
-
-function _String_toLower(str)
-{
- return str.toLowerCase();
-}
-
-var _String_any = F2(function(isGood, string)
-{
- var i = string.length;
- while (i--)
- {
- var char = string[i];
- var word = string.charCodeAt(i);
- if (0xDC00 <= word && word <= 0xDFFF)
- {
- i--;
- char = string[i] + char;
- }
- if (isGood(_Utils_chr(char)))
- {
- return true;
- }
- }
- return false;
-});
-
-var _String_all = F2(function(isGood, string)
-{
- var i = string.length;
- while (i--)
- {
- var char = string[i];
- var word = string.charCodeAt(i);
- if (0xDC00 <= word && word <= 0xDFFF)
- {
- i--;
- char = string[i] + char;
- }
- if (!isGood(_Utils_chr(char)))
- {
- return false;
- }
- }
- return true;
-});
-
-var _String_contains = F2(function(sub, str)
-{
- return str.indexOf(sub) > -1;
-});
-
-var _String_startsWith = F2(function(sub, str)
-{
- return str.indexOf(sub) === 0;
-});
-
-var _String_endsWith = F2(function(sub, str)
-{
- return str.length >= sub.length &&
- str.lastIndexOf(sub) === str.length - sub.length;
-});
-
-var _String_indexes = F2(function(sub, str)
-{
- var subLen = sub.length;
-
- if (subLen < 1)
- {
- return _List_Nil;
- }
-
- var i = 0;
- var is = [];
-
- while ((i = str.indexOf(sub, i)) > -1)
- {
- is.push(i);
- i = i + subLen;
- }
-
- return _List_fromArray(is);
-});
-
-
-// TO STRING
-
-function _String_fromNumber(number)
-{
- return number + '';
-}
-
-
-// INT CONVERSIONS
-
-function _String_toInt(str)
-{
- var total = 0;
- var code0 = str.charCodeAt(0);
- var start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;
-
- for (var i = start; i < str.length; ++i)
- {
- var code = str.charCodeAt(i);
- if (code < 0x30 || 0x39 < code)
- {
- return $elm$core$Maybe$Nothing;
- }
- total = 10 * total + code - 0x30;
- }
-
- return i == start
- ? $elm$core$Maybe$Nothing
- : $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);
-}
-
-
-// FLOAT CONVERSIONS
-
-function _String_toFloat(s)
-{
- // check if it is a hex, octal, or binary number
- if (s.length === 0 || /[\sxbo]/.test(s))
- {
- return $elm$core$Maybe$Nothing;
- }
- var n = +s;
- // faster isNaN check
- return n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;
-}
-
-function _String_fromList(chars)
-{
- return _List_toArray(chars).join('');
-}
-
-
-
-
-function _Char_toCode(char)
-{
- var code = char.charCodeAt(0);
- if (0xD800 <= code && code <= 0xDBFF)
- {
- return (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000
- }
- return code;
-}
-
-function _Char_fromCode(code)
-{
- return _Utils_chr(
- (code < 0 || 0x10FFFF < code)
- ? '\uFFFD'
- :
- (code <= 0xFFFF)
- ? String.fromCharCode(code)
- :
- (code -= 0x10000,
- String.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)
- )
- );
-}
-
-function _Char_toUpper(char)
-{
- return _Utils_chr(char.toUpperCase());
-}
-
-function _Char_toLower(char)
-{
- return _Utils_chr(char.toLowerCase());
-}
-
-function _Char_toLocaleUpper(char)
-{
- return _Utils_chr(char.toLocaleUpperCase());
-}
-
-function _Char_toLocaleLower(char)
-{
- return _Utils_chr(char.toLocaleLowerCase());
-}
-
-
-
-/**/
-function _Json_errorToString(error)
-{
- return $elm$json$Json$Decode$errorToString(error);
-}
-//*/
-
-
-// CORE DECODERS
-
-function _Json_succeed(msg)
-{
- return {
- $: 0,
- a: msg
- };
-}
-
-function _Json_fail(msg)
-{
- return {
- $: 1,
- a: msg
- };
-}
-
-function _Json_decodePrim(decoder)
-{
- return { $: 2, b: decoder };
-}
-
-var _Json_decodeInt = _Json_decodePrim(function(value) {
- return (typeof value !== 'number')
- ? _Json_expecting('an INT', value)
- :
- (-2147483647 < value && value < 2147483647 && (value | 0) === value)
- ? $elm$core$Result$Ok(value)
- :
- (isFinite(value) && !(value % 1))
- ? $elm$core$Result$Ok(value)
- : _Json_expecting('an INT', value);
-});
-
-var _Json_decodeBool = _Json_decodePrim(function(value) {
- return (typeof value === 'boolean')
- ? $elm$core$Result$Ok(value)
- : _Json_expecting('a BOOL', value);
-});
-
-var _Json_decodeFloat = _Json_decodePrim(function(value) {
- return (typeof value === 'number')
- ? $elm$core$Result$Ok(value)
- : _Json_expecting('a FLOAT', value);
-});
-
-var _Json_decodeValue = _Json_decodePrim(function(value) {
- return $elm$core$Result$Ok(_Json_wrap(value));
-});
-
-var _Json_decodeString = _Json_decodePrim(function(value) {
- return (typeof value === 'string')
- ? $elm$core$Result$Ok(value)
- : (value instanceof String)
- ? $elm$core$Result$Ok(value + '')
- : _Json_expecting('a STRING', value);
-});
-
-function _Json_decodeList(decoder) { return { $: 3, b: decoder }; }
-function _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }
-
-function _Json_decodeNull(value) { return { $: 5, c: value }; }
-
-var _Json_decodeField = F2(function(field, decoder)
-{
- return {
- $: 6,
- d: field,
- b: decoder
- };
-});
-
-var _Json_decodeIndex = F2(function(index, decoder)
-{
- return {
- $: 7,
- e: index,
- b: decoder
- };
-});
-
-function _Json_decodeKeyValuePairs(decoder)
-{
- return {
- $: 8,
- b: decoder
- };
-}
-
-function _Json_mapMany(f, decoders)
-{
- return {
- $: 9,
- f: f,
- g: decoders
- };
-}
-
-var _Json_andThen = F2(function(callback, decoder)
-{
- return {
- $: 10,
- b: decoder,
- h: callback
- };
-});
-
-function _Json_oneOf(decoders)
-{
- return {
- $: 11,
- g: decoders
- };
-}
-
-
-// DECODING OBJECTS
-
-var _Json_map1 = F2(function(f, d1)
-{
- return _Json_mapMany(f, [d1]);
-});
-
-var _Json_map2 = F3(function(f, d1, d2)
-{
- return _Json_mapMany(f, [d1, d2]);
-});
-
-var _Json_map3 = F4(function(f, d1, d2, d3)
-{
- return _Json_mapMany(f, [d1, d2, d3]);
-});
-
-var _Json_map4 = F5(function(f, d1, d2, d3, d4)
-{
- return _Json_mapMany(f, [d1, d2, d3, d4]);
-});
-
-var _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)
-{
- return _Json_mapMany(f, [d1, d2, d3, d4, d5]);
-});
-
-var _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)
-{
- return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);
-});
-
-var _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)
-{
- return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);
-});
-
-var _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)
-{
- return _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);
-});
-
-
-// DECODE
-
-var _Json_runOnString = F2(function(decoder, string)
-{
- try
- {
- var value = JSON.parse(string);
- return _Json_runHelp(decoder, value);
- }
- catch (e)
- {
- return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));
- }
-});
-
-var _Json_run = F2(function(decoder, value)
-{
- return _Json_runHelp(decoder, _Json_unwrap(value));
-});
-
-function _Json_runHelp(decoder, value)
-{
- switch (decoder.$)
- {
- case 2:
- return decoder.b(value);
-
- case 5:
- return (value === null)
- ? $elm$core$Result$Ok(decoder.c)
- : _Json_expecting('null', value);
-
- case 3:
- if (!_Json_isArray(value))
- {
- return _Json_expecting('a LIST', value);
- }
- return _Json_runArrayDecoder(decoder.b, value, _List_fromArray);
-
- case 4:
- if (!_Json_isArray(value))
- {
- return _Json_expecting('an ARRAY', value);
- }
- return _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);
-
- case 6:
- var field = decoder.d;
- if (typeof value !== 'object' || value === null || !(field in value))
- {
- return _Json_expecting('an OBJECT with a field named `' + field + '`', value);
- }
- var result = _Json_runHelp(decoder.b, value[field]);
- return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));
-
- case 7:
- var index = decoder.e;
- if (!_Json_isArray(value))
- {
- return _Json_expecting('an ARRAY', value);
- }
- if (index >= value.length)
- {
- return _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);
- }
- var result = _Json_runHelp(decoder.b, value[index]);
- return ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));
-
- case 8:
- if (typeof value !== 'object' || value === null || _Json_isArray(value))
- {
- return _Json_expecting('an OBJECT', value);
- }
-
- var keyValuePairs = _List_Nil;
- // TODO test perf of Object.keys and switch when support is good enough
- for (var key in value)
- {
- if (value.hasOwnProperty(key))
- {
- var result = _Json_runHelp(decoder.b, value[key]);
- if (!$elm$core$Result$isOk(result))
- {
- return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));
- }
- keyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);
- }
- }
- return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));
-
- case 9:
- var answer = decoder.f;
- var decoders = decoder.g;
- for (var i = 0; i < decoders.length; i++)
- {
- var result = _Json_runHelp(decoders[i], value);
- if (!$elm$core$Result$isOk(result))
- {
- return result;
- }
- answer = answer(result.a);
- }
- return $elm$core$Result$Ok(answer);
-
- case 10:
- var result = _Json_runHelp(decoder.b, value);
- return (!$elm$core$Result$isOk(result))
- ? result
- : _Json_runHelp(decoder.h(result.a), value);
-
- case 11:
- var errors = _List_Nil;
- for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS
- {
- var result = _Json_runHelp(temp.a, value);
- if ($elm$core$Result$isOk(result))
- {
- return result;
- }
- errors = _List_Cons(result.a, errors);
- }
- return $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));
-
- case 1:
- return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));
-
- case 0:
- return $elm$core$Result$Ok(decoder.a);
- }
-}
-
-function _Json_runArrayDecoder(decoder, value, toElmValue)
-{
- var len = value.length;
- var array = new Array(len);
- for (var i = 0; i < len; i++)
- {
- var result = _Json_runHelp(decoder, value[i]);
- if (!$elm$core$Result$isOk(result))
- {
- return $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));
- }
- array[i] = result.a;
- }
- return $elm$core$Result$Ok(toElmValue(array));
-}
-
-function _Json_isArray(value)
-{
- return Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);
-}
-
-function _Json_toElmArray(array)
-{
- return A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });
-}
-
-function _Json_expecting(type, value)
-{
- return $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));
-}
-
-
-// EQUALITY
-
-function _Json_equality(x, y)
-{
- if (x === y)
- {
- return true;
- }
-
- if (x.$ !== y.$)
- {
- return false;
- }
-
- switch (x.$)
- {
- case 0:
- case 1:
- return x.a === y.a;
-
- case 2:
- return x.b === y.b;
-
- case 5:
- return x.c === y.c;
-
- case 3:
- case 4:
- case 8:
- return _Json_equality(x.b, y.b);
-
- case 6:
- return x.d === y.d && _Json_equality(x.b, y.b);
-
- case 7:
- return x.e === y.e && _Json_equality(x.b, y.b);
-
- case 9:
- return x.f === y.f && _Json_listEquality(x.g, y.g);
-
- case 10:
- return x.h === y.h && _Json_equality(x.b, y.b);
-
- case 11:
- return _Json_listEquality(x.g, y.g);
- }
-}
-
-function _Json_listEquality(aDecoders, bDecoders)
-{
- var len = aDecoders.length;
- if (len !== bDecoders.length)
- {
- return false;
- }
- for (var i = 0; i < len; i++)
- {
- if (!_Json_equality(aDecoders[i], bDecoders[i]))
- {
- return false;
- }
- }
- return true;
-}
-
-
-// ENCODE
-
-var _Json_encode = F2(function(indentLevel, value)
-{
- return JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';
-});
-
-function _Json_wrap(value) { return { $: 0, a: value }; }
-function _Json_unwrap(value) { return value.a; }
-
-function _Json_wrap_UNUSED(value) { return value; }
-function _Json_unwrap_UNUSED(value) { return value; }
-
-function _Json_emptyArray() { return []; }
-function _Json_emptyObject() { return {}; }
-
-var _Json_addField = F3(function(key, value, object)
-{
- object[key] = _Json_unwrap(value);
- return object;
-});
-
-function _Json_addEntry(func)
-{
- return F2(function(entry, array)
- {
- array.push(_Json_unwrap(func(entry)));
- return array;
- });
-}
-
-var _Json_encodeNull = _Json_wrap(null);
-
-
-
-// TASKS
-
-function _Scheduler_succeed(value)
-{
- return {
- $: 0,
- a: value
- };
-}
-
-function _Scheduler_fail(error)
-{
- return {
- $: 1,
- a: error
- };
-}
-
-function _Scheduler_binding(callback)
-{
- return {
- $: 2,
- b: callback,
- c: null
- };
-}
-
-var _Scheduler_andThen = F2(function(callback, task)
-{
- return {
- $: 3,
- b: callback,
- d: task
- };
-});
-
-var _Scheduler_onError = F2(function(callback, task)
-{
- return {
- $: 4,
- b: callback,
- d: task
- };
-});
-
-function _Scheduler_receive(callback)
-{
- return {
- $: 5,
- b: callback
- };
-}
-
-
-// PROCESSES
-
-var _Scheduler_guid = 0;
-
-function _Scheduler_rawSpawn(task)
-{
- var proc = {
- $: 0,
- e: _Scheduler_guid++,
- f: task,
- g: null,
- h: []
- };
-
- _Scheduler_enqueue(proc);
-
- return proc;
-}
-
-function _Scheduler_spawn(task)
-{
- return _Scheduler_binding(function(callback) {
- callback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));
- });
-}
-
-function _Scheduler_rawSend(proc, msg)
-{
- proc.h.push(msg);
- _Scheduler_enqueue(proc);
-}
-
-var _Scheduler_send = F2(function(proc, msg)
-{
- return _Scheduler_binding(function(callback) {
- _Scheduler_rawSend(proc, msg);
- callback(_Scheduler_succeed(_Utils_Tuple0));
- });
-});
-
-function _Scheduler_kill(proc)
-{
- return _Scheduler_binding(function(callback) {
- var task = proc.f;
- if (task.$ === 2 && task.c)
- {
- task.c();
- }
-
- proc.f = null;
-
- callback(_Scheduler_succeed(_Utils_Tuple0));
- });
-}
-
-
-/* STEP PROCESSES
-
-type alias Process =
- { $ : tag
- , id : unique_id
- , root : Task
- , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }
- , mailbox : [msg]
- }
-
-*/
-
-
-var _Scheduler_working = false;
-var _Scheduler_queue = [];
-
-
-function _Scheduler_enqueue(proc)
-{
- _Scheduler_queue.push(proc);
- if (_Scheduler_working)
- {
- return;
- }
- _Scheduler_working = true;
- while (proc = _Scheduler_queue.shift())
- {
- _Scheduler_step(proc);
- }
- _Scheduler_working = false;
-}
-
-
-function _Scheduler_step(proc)
-{
- while (proc.f)
- {
- var rootTag = proc.f.$;
- if (rootTag === 0 || rootTag === 1)
- {
- while (proc.g && proc.g.$ !== rootTag)
- {
- proc.g = proc.g.i;
- }
- if (!proc.g)
- {
- return;
- }
- proc.f = proc.g.b(proc.f.a);
- proc.g = proc.g.i;
- }
- else if (rootTag === 2)
- {
- proc.f.c = proc.f.b(function(newRoot) {
- proc.f = newRoot;
- _Scheduler_enqueue(proc);
- });
- return;
- }
- else if (rootTag === 5)
- {
- if (proc.h.length === 0)
- {
- return;
- }
- proc.f = proc.f.b(proc.h.shift());
- }
- else // if (rootTag === 3 || rootTag === 4)
- {
- proc.g = {
- $: rootTag === 3 ? 0 : 1,
- b: proc.f.b,
- i: proc.g
- };
- proc.f = proc.f.d;
- }
- }
-}
-
-
-
-function _Process_sleep(time)
-{
- return _Scheduler_binding(function(callback) {
- var id = setTimeout(function() {
- callback(_Scheduler_succeed(_Utils_Tuple0));
- }, time);
-
- return function() { clearTimeout(id); };
- });
-}
-
-
-
-
-// PROGRAMS
-
-
-var _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)
-{
- return _Platform_initialize(
- flagDecoder,
- args,
- impl.init,
- impl.update,
- impl.subscriptions,
- function() { return function() {} }
- );
-});
-
-
-
-// INITIALIZE A PROGRAM
-
-
-function _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)
-{
- var result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));
- $elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/);
- var managers = {};
- var initPair = init(result.a);
- var model = initPair.a;
- var stepper = stepperBuilder(sendToApp, model);
- var ports = _Platform_setupEffects(managers, sendToApp);
-
- function sendToApp(msg, viewMetadata)
- {
- var pair = A2(update, msg, model);
- stepper(model = pair.a, viewMetadata);
- _Platform_enqueueEffects(managers, pair.b, subscriptions(model));
- }
-
- _Platform_enqueueEffects(managers, initPair.b, subscriptions(model));
-
- return ports ? { ports: ports } : {};
-}
-
-
-
-// TRACK PRELOADS
-//
-// This is used by code in elm/browser and elm/http
-// to register any HTTP requests that are triggered by init.
-//
-
-
-var _Platform_preload;
-
-
-function _Platform_registerPreload(url)
-{
- _Platform_preload.add(url);
-}
-
-
-
-// EFFECT MANAGERS
-
-
-var _Platform_effectManagers = {};
-
-
-function _Platform_setupEffects(managers, sendToApp)
-{
- var ports;
-
- // setup all necessary effect managers
- for (var key in _Platform_effectManagers)
- {
- var manager = _Platform_effectManagers[key];
-
- if (manager.a)
- {
- ports = ports || {};
- ports[key] = manager.a(key, sendToApp);
- }
-
- managers[key] = _Platform_instantiateManager(manager, sendToApp);
- }
-
- return ports;
-}
-
-
-function _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)
-{
- return {
- b: init,
- c: onEffects,
- d: onSelfMsg,
- e: cmdMap,
- f: subMap
- };
-}
-
-
-function _Platform_instantiateManager(info, sendToApp)
-{
- var router = {
- g: sendToApp,
- h: undefined
- };
-
- var onEffects = info.c;
- var onSelfMsg = info.d;
- var cmdMap = info.e;
- var subMap = info.f;
-
- function loop(state)
- {
- return A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)
- {
- var value = msg.a;
-
- if (msg.$ === 0)
- {
- return A3(onSelfMsg, router, value, state);
- }
-
- return cmdMap && subMap
- ? A4(onEffects, router, value.i, value.j, state)
- : A3(onEffects, router, cmdMap ? value.i : value.j, state);
- }));
- }
-
- return router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));
-}
-
-
-
-// ROUTING
-
-
-var _Platform_sendToApp = F2(function(router, msg)
-{
- return _Scheduler_binding(function(callback)
- {
- router.g(msg);
- callback(_Scheduler_succeed(_Utils_Tuple0));
- });
-});
-
-
-var _Platform_sendToSelf = F2(function(router, msg)
-{
- return A2(_Scheduler_send, router.h, {
- $: 0,
- a: msg
- });
-});
-
-
-
-// BAGS
-
-
-function _Platform_leaf(home)
-{
- return function(value)
- {
- return {
- $: 1,
- k: home,
- l: value
- };
- };
-}
-
-
-function _Platform_batch(list)
-{
- return {
- $: 2,
- m: list
- };
-}
-
-
-var _Platform_map = F2(function(tagger, bag)
-{
- return {
- $: 3,
- n: tagger,
- o: bag
- }
-});
-
-
-
-// PIPE BAGS INTO EFFECT MANAGERS
-//
-// Effects must be queued!
-//
-// Say your init contains a synchronous command, like Time.now or Time.here
-//
-// - This will produce a batch of effects (FX_1)
-// - The synchronous task triggers the subsequent `update` call
-// - This will produce a batch of effects (FX_2)
-//
-// If we just start dispatching FX_2, subscriptions from FX_2 can be processed
-// before subscriptions from FX_1. No good! Earlier versions of this code had
-// this problem, leading to these reports:
-//
-// https://github.com/elm/core/issues/980
-// https://github.com/elm/core/pull/981
-// https://github.com/elm/compiler/issues/1776
-//
-// The queue is necessary to avoid ordering issues for synchronous commands.
-
-
-// Why use true/false here? Why not just check the length of the queue?
-// The goal is to detect "are we currently dispatching effects?" If we
-// are, we need to bail and let the ongoing while loop handle things.
-//
-// Now say the queue has 1 element. When we dequeue the final element,
-// the queue will be empty, but we are still actively dispatching effects.
-// So you could get queue jumping in a really tricky category of cases.
-//
-var _Platform_effectsQueue = [];
-var _Platform_effectsActive = false;
-
-
-function _Platform_enqueueEffects(managers, cmdBag, subBag)
-{
- _Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });
-
- if (_Platform_effectsActive) return;
-
- _Platform_effectsActive = true;
- for (var fx; fx = _Platform_effectsQueue.shift(); )
- {
- _Platform_dispatchEffects(fx.p, fx.q, fx.r);
- }
- _Platform_effectsActive = false;
-}
-
-
-function _Platform_dispatchEffects(managers, cmdBag, subBag)
-{
- var effectsDict = {};
- _Platform_gatherEffects(true, cmdBag, effectsDict, null);
- _Platform_gatherEffects(false, subBag, effectsDict, null);
-
- for (var home in managers)
- {
- _Scheduler_rawSend(managers[home], {
- $: 'fx',
- a: effectsDict[home] || { i: _List_Nil, j: _List_Nil }
- });
- }
-}
-
-
-function _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)
-{
- switch (bag.$)
- {
- case 1:
- var home = bag.k;
- var effect = _Platform_toEffect(isCmd, home, taggers, bag.l);
- effectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);
- return;
-
- case 2:
- for (var list = bag.m; list.b; list = list.b) // WHILE_CONS
- {
- _Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);
- }
- return;
-
- case 3:
- _Platform_gatherEffects(isCmd, bag.o, effectsDict, {
- s: bag.n,
- t: taggers
- });
- return;
- }
-}
-
-
-function _Platform_toEffect(isCmd, home, taggers, value)
-{
- function applyTaggers(x)
- {
- for (var temp = taggers; temp; temp = temp.t)
- {
- x = temp.s(x);
- }
- return x;
- }
-
- var map = isCmd
- ? _Platform_effectManagers[home].e
- : _Platform_effectManagers[home].f;
-
- return A2(map, applyTaggers, value)
-}
-
-
-function _Platform_insert(isCmd, newEffect, effects)
-{
- effects = effects || { i: _List_Nil, j: _List_Nil };
-
- isCmd
- ? (effects.i = _List_Cons(newEffect, effects.i))
- : (effects.j = _List_Cons(newEffect, effects.j));
-
- return effects;
-}
-
-
-
-// PORTS
-
-
-function _Platform_checkPortName(name)
-{
- if (_Platform_effectManagers[name])
- {
- _Debug_crash(3, name)
- }
-}
-
-
-
-// OUTGOING PORTS
-
-
-function _Platform_outgoingPort(name, converter)
-{
- _Platform_checkPortName(name);
- _Platform_effectManagers[name] = {
- e: _Platform_outgoingPortMap,
- u: converter,
- a: _Platform_setupOutgoingPort
- };
- return _Platform_leaf(name);
-}
-
-
-var _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });
-
-
-function _Platform_setupOutgoingPort(name)
-{
- var subs = [];
- var converter = _Platform_effectManagers[name].u;
-
- // CREATE MANAGER
-
- var init = _Process_sleep(0);
-
- _Platform_effectManagers[name].b = init;
- _Platform_effectManagers[name].c = F3(function(router, cmdList, state)
- {
- for ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS
- {
- // grab a separate reference to subs in case unsubscribe is called
- var currentSubs = subs;
- var value = _Json_unwrap(converter(cmdList.a));
- for (var i = 0; i < currentSubs.length; i++)
- {
- currentSubs[i](value);
- }
- }
- return init;
- });
-
- // PUBLIC API
-
- function subscribe(callback)
- {
- subs.push(callback);
- }
-
- function unsubscribe(callback)
- {
- // copy subs into a new array in case unsubscribe is called within a
- // subscribed callback
- subs = subs.slice();
- var index = subs.indexOf(callback);
- if (index >= 0)
- {
- subs.splice(index, 1);
- }
- }
-
- return {
- subscribe: subscribe,
- unsubscribe: unsubscribe
- };
-}
-
-
-
-// INCOMING PORTS
-
-
-function _Platform_incomingPort(name, converter)
-{
- _Platform_checkPortName(name);
- _Platform_effectManagers[name] = {
- f: _Platform_incomingPortMap,
- u: converter,
- a: _Platform_setupIncomingPort
- };
- return _Platform_leaf(name);
-}
-
-
-var _Platform_incomingPortMap = F2(function(tagger, finalTagger)
-{
- return function(value)
- {
- return tagger(finalTagger(value));
- };
-});
-
-
-function _Platform_setupIncomingPort(name, sendToApp)
-{
- var subs = _List_Nil;
- var converter = _Platform_effectManagers[name].u;
-
- // CREATE MANAGER
-
- var init = _Scheduler_succeed(null);
-
- _Platform_effectManagers[name].b = init;
- _Platform_effectManagers[name].c = F3(function(router, subList, state)
- {
- subs = subList;
- return init;
- });
-
- // PUBLIC API
-
- function send(incomingValue)
- {
- var result = A2(_Json_run, converter, _Json_wrap(incomingValue));
-
- $elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);
-
- var value = result.a;
- for (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS
- {
- sendToApp(temp.a(value));
- }
- }
-
- return { send: send };
-}
-
-
-
-// EXPORT ELM MODULES
-//
-// Have DEBUG and PROD versions so that we can (1) give nicer errors in
-// debug mode and (2) not pay for the bits needed for that in prod mode.
-//
-
-
-function _Platform_export_UNUSED(exports)
-{
- scope['Elm']
- ? _Platform_mergeExportsProd(scope['Elm'], exports)
- : scope['Elm'] = exports;
-}
-
-
-function _Platform_mergeExportsProd(obj, exports)
-{
- for (var name in exports)
- {
- (name in obj)
- ? (name == 'init')
- ? _Debug_crash(6)
- : _Platform_mergeExportsProd(obj[name], exports[name])
- : (obj[name] = exports[name]);
- }
-}
-
-
-function _Platform_export(exports)
-{
- scope['Elm']
- ? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)
- : scope['Elm'] = exports;
-}
-
-
-function _Platform_mergeExportsDebug(moduleName, obj, exports)
-{
- for (var name in exports)
- {
- (name in obj)
- ? (name == 'init')
- ? _Debug_crash(6, moduleName)
- : _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])
- : (obj[name] = exports[name]);
- }
-}
-
-
-
-
-// HELPERS
-
-
-var _VirtualDom_divertHrefToApp;
-
-var _VirtualDom_doc = typeof document !== 'undefined' ? document : {};
-
-
-function _VirtualDom_appendChild(parent, child)
-{
- parent.appendChild(child);
-}
-
-var _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)
-{
- // NOTE: this function needs _Platform_export available to work
-
- /**_UNUSED/
- var node = args['node'];
- //*/
- /**/
- var node = args && args['node'] ? args['node'] : _Debug_crash(0);
- //*/
-
- node.parentNode.replaceChild(
- _VirtualDom_render(virtualNode, function() {}),
- node
- );
-
- return {};
-});
-
-
-
-// TEXT
-
-
-function _VirtualDom_text(string)
-{
- return {
- $: 0,
- a: string
- };
-}
-
-
-
-// NODE
-
-
-var _VirtualDom_nodeNS = F2(function(namespace, tag)
-{
- return F2(function(factList, kidList)
- {
- for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
- {
- var kid = kidList.a;
- descendantsCount += (kid.b || 0);
- kids.push(kid);
- }
- descendantsCount += kids.length;
-
- return {
- $: 1,
- c: tag,
- d: _VirtualDom_organizeFacts(factList),
- e: kids,
- f: namespace,
- b: descendantsCount
- };
- });
-});
-
-
-var _VirtualDom_node = _VirtualDom_nodeNS(undefined);
-
-
-
-// KEYED NODE
-
-
-var _VirtualDom_keyedNodeNS = F2(function(namespace, tag)
-{
- return F2(function(factList, kidList)
- {
- for (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS
- {
- var kid = kidList.a;
- descendantsCount += (kid.b.b || 0);
- kids.push(kid);
- }
- descendantsCount += kids.length;
-
- return {
- $: 2,
- c: tag,
- d: _VirtualDom_organizeFacts(factList),
- e: kids,
- f: namespace,
- b: descendantsCount
- };
- });
-});
-
-
-var _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);
-
-
-
-// CUSTOM
-
-
-function _VirtualDom_custom(factList, model, render, diff)
-{
- return {
- $: 3,
- d: _VirtualDom_organizeFacts(factList),
- g: model,
- h: render,
- i: diff
- };
-}
-
-
-
-// MAP
-
-
-var _VirtualDom_map = F2(function(tagger, node)
-{
- return {
- $: 4,
- j: tagger,
- k: node,
- b: 1 + (node.b || 0)
- };
-});
-
-
-
-// LAZY
-
-
-function _VirtualDom_thunk(refs, thunk)
-{
- return {
- $: 5,
- l: refs,
- m: thunk,
- k: undefined
- };
-}
-
-var _VirtualDom_lazy = F2(function(func, a)
-{
- return _VirtualDom_thunk([func, a], function() {
- return func(a);
- });
-});
-
-var _VirtualDom_lazy2 = F3(function(func, a, b)
-{
- return _VirtualDom_thunk([func, a, b], function() {
- return A2(func, a, b);
- });
-});
-
-var _VirtualDom_lazy3 = F4(function(func, a, b, c)
-{
- return _VirtualDom_thunk([func, a, b, c], function() {
- return A3(func, a, b, c);
- });
-});
-
-var _VirtualDom_lazy4 = F5(function(func, a, b, c, d)
-{
- return _VirtualDom_thunk([func, a, b, c, d], function() {
- return A4(func, a, b, c, d);
- });
-});
-
-var _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)
-{
- return _VirtualDom_thunk([func, a, b, c, d, e], function() {
- return A5(func, a, b, c, d, e);
- });
-});
-
-var _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)
-{
- return _VirtualDom_thunk([func, a, b, c, d, e, f], function() {
- return A6(func, a, b, c, d, e, f);
- });
-});
-
-var _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)
-{
- return _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {
- return A7(func, a, b, c, d, e, f, g);
- });
-});
-
-var _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)
-{
- return _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {
- return A8(func, a, b, c, d, e, f, g, h);
- });
-});
-
-
-
-// FACTS
-
-
-var _VirtualDom_on = F2(function(key, handler)
-{
- return {
- $: 'a0',
- n: key,
- o: handler
- };
-});
-var _VirtualDom_style = F2(function(key, value)
-{
- return {
- $: 'a1',
- n: key,
- o: value
- };
-});
-var _VirtualDom_property = F2(function(key, value)
-{
- return {
- $: 'a2',
- n: key,
- o: value
- };
-});
-var _VirtualDom_attribute = F2(function(key, value)
-{
- return {
- $: 'a3',
- n: key,
- o: value
- };
-});
-var _VirtualDom_attributeNS = F3(function(namespace, key, value)
-{
- return {
- $: 'a4',
- n: key,
- o: { f: namespace, o: value }
- };
-});
-
-
-
-// XSS ATTACK VECTOR CHECKS
-//
-// For some reason, tabs can appear in href protocols and it still works.
-// So '\tjava\tSCRIPT:alert("!!!")' and 'javascript:alert("!!!")' are the same
-// in practice. That is why _VirtualDom_RE_js and _VirtualDom_RE_js_html look
-// so freaky.
-//
-// Pulling the regular expressions out to the top level gives a slight speed
-// boost in small benchmarks (4-10%) but hoisting values to reduce allocation
-// can be unpredictable in large programs where JIT may have a harder time with
-// functions are not fully self-contained. The benefit is more that the js and
-// js_html ones are so weird that I prefer to see them near each other.
-
-
-var _VirtualDom_RE_script = /^script$/i;
-var _VirtualDom_RE_on_formAction = /^(on|formAction$)/i;
-var _VirtualDom_RE_js = /^\s*j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:/i;
-var _VirtualDom_RE_js_html = /^\s*(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:|d\s*a\s*t\s*a\s*:\s*t\s*e\s*x\s*t\s*\/\s*h\s*t\s*m\s*l\s*(,|;))/i;
-
-
-function _VirtualDom_noScript(tag)
-{
- return _VirtualDom_RE_script.test(tag) ? 'p' : tag;
-}
-
-function _VirtualDom_noOnOrFormAction(key)
-{
- return _VirtualDom_RE_on_formAction.test(key) ? 'data-' + key : key;
-}
-
-function _VirtualDom_noInnerHtmlOrFormAction(key)
-{
- return key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;
-}
-
-function _VirtualDom_noJavaScriptUri(value)
-{
- return _VirtualDom_RE_js.test(value)
- ? /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
- : value;
-}
-
-function _VirtualDom_noJavaScriptOrHtmlUri(value)
-{
- return _VirtualDom_RE_js_html.test(value)
- ? /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
- : value;
-}
-
-function _VirtualDom_noJavaScriptOrHtmlJson(value)
-{
- return (typeof _Json_unwrap(value) === 'string' && _VirtualDom_RE_js_html.test(_Json_unwrap(value)))
- ? _Json_wrap(
- /**_UNUSED/''//*//**/'javascript:alert("This is an XSS vector. Please use ports or web components instead.")'//*/
- ) : value;
-}
-
-
-
-// MAP FACTS
-
-
-var _VirtualDom_mapAttribute = F2(function(func, attr)
-{
- return (attr.$ === 'a0')
- ? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))
- : attr;
-});
-
-function _VirtualDom_mapHandler(func, handler)
-{
- var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
-
- // 0 = Normal
- // 1 = MayStopPropagation
- // 2 = MayPreventDefault
- // 3 = Custom
-
- return {
- $: handler.$,
- a:
- !tag
- ? A2($elm$json$Json$Decode$map, func, handler.a)
- :
- A3($elm$json$Json$Decode$map2,
- tag < 3
- ? _VirtualDom_mapEventTuple
- : _VirtualDom_mapEventRecord,
- $elm$json$Json$Decode$succeed(func),
- handler.a
- )
- };
-}
-
-var _VirtualDom_mapEventTuple = F2(function(func, tuple)
-{
- return _Utils_Tuple2(func(tuple.a), tuple.b);
-});
-
-var _VirtualDom_mapEventRecord = F2(function(func, record)
-{
- return {
- message: func(record.message),
- stopPropagation: record.stopPropagation,
- preventDefault: record.preventDefault
- }
-});
-
-
-
-// ORGANIZE FACTS
-
-
-function _VirtualDom_organizeFacts(factList)
-{
- for (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS
- {
- var entry = factList.a;
-
- var tag = entry.$;
- var key = entry.n;
- var value = entry.o;
-
- if (tag === 'a2')
- {
- (key === 'className')
- ? _VirtualDom_addClass(facts, key, _Json_unwrap(value))
- : facts[key] = _Json_unwrap(value);
-
- continue;
- }
-
- var subFacts = facts[tag] || (facts[tag] = {});
- (tag === 'a3' && key === 'class')
- ? _VirtualDom_addClass(subFacts, key, value)
- : subFacts[key] = value;
- }
-
- return facts;
-}
-
-function _VirtualDom_addClass(object, key, newClass)
-{
- var classes = object[key];
- object[key] = classes ? classes + ' ' + newClass : newClass;
-}
-
-
-
-// RENDER
-
-
-function _VirtualDom_render(vNode, eventNode)
-{
- var tag = vNode.$;
-
- if (tag === 5)
- {
- return _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);
- }
-
- if (tag === 0)
- {
- return _VirtualDom_doc.createTextNode(vNode.a);
- }
-
- if (tag === 4)
- {
- var subNode = vNode.k;
- var tagger = vNode.j;
-
- while (subNode.$ === 4)
- {
- typeof tagger !== 'object'
- ? tagger = [tagger, subNode.j]
- : tagger.push(subNode.j);
-
- subNode = subNode.k;
- }
-
- var subEventRoot = { j: tagger, p: eventNode };
- var domNode = _VirtualDom_render(subNode, subEventRoot);
- domNode.elm_event_node_ref = subEventRoot;
- return domNode;
- }
-
- if (tag === 3)
- {
- var domNode = vNode.h(vNode.g);
- _VirtualDom_applyFacts(domNode, eventNode, vNode.d);
- return domNode;
- }
-
- // at this point `tag` must be 1 or 2
-
- var domNode = vNode.f
- ? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)
- : _VirtualDom_doc.createElement(vNode.c);
-
- if (_VirtualDom_divertHrefToApp && vNode.c == 'a')
- {
- domNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));
- }
-
- _VirtualDom_applyFacts(domNode, eventNode, vNode.d);
-
- for (var kids = vNode.e, i = 0; i < kids.length; i++)
- {
- _VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));
- }
-
- return domNode;
-}
-
-
-
-// APPLY FACTS
-
-
-function _VirtualDom_applyFacts(domNode, eventNode, facts)
-{
- for (var key in facts)
- {
- var value = facts[key];
-
- key === 'a1'
- ? _VirtualDom_applyStyles(domNode, value)
- :
- key === 'a0'
- ? _VirtualDom_applyEvents(domNode, eventNode, value)
- :
- key === 'a3'
- ? _VirtualDom_applyAttrs(domNode, value)
- :
- key === 'a4'
- ? _VirtualDom_applyAttrsNS(domNode, value)
- :
- ((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);
- }
-}
-
-
-
-// APPLY STYLES
-
-
-function _VirtualDom_applyStyles(domNode, styles)
-{
- var domNodeStyle = domNode.style;
-
- for (var key in styles)
- {
- domNodeStyle[key] = styles[key];
- }
-}
-
-
-
-// APPLY ATTRS
-
-
-function _VirtualDom_applyAttrs(domNode, attrs)
-{
- for (var key in attrs)
- {
- var value = attrs[key];
- typeof value !== 'undefined'
- ? domNode.setAttribute(key, value)
- : domNode.removeAttribute(key);
- }
-}
-
-
-
-// APPLY NAMESPACED ATTRS
-
-
-function _VirtualDom_applyAttrsNS(domNode, nsAttrs)
-{
- for (var key in nsAttrs)
- {
- var pair = nsAttrs[key];
- var namespace = pair.f;
- var value = pair.o;
-
- typeof value !== 'undefined'
- ? domNode.setAttributeNS(namespace, key, value)
- : domNode.removeAttributeNS(namespace, key);
- }
-}
-
-
-
-// APPLY EVENTS
-
-
-function _VirtualDom_applyEvents(domNode, eventNode, events)
-{
- var allCallbacks = domNode.elmFs || (domNode.elmFs = {});
-
- for (var key in events)
- {
- var newHandler = events[key];
- var oldCallback = allCallbacks[key];
-
- if (!newHandler)
- {
- domNode.removeEventListener(key, oldCallback);
- allCallbacks[key] = undefined;
- continue;
- }
-
- if (oldCallback)
- {
- var oldHandler = oldCallback.q;
- if (oldHandler.$ === newHandler.$)
- {
- oldCallback.q = newHandler;
- continue;
- }
- domNode.removeEventListener(key, oldCallback);
- }
-
- oldCallback = _VirtualDom_makeCallback(eventNode, newHandler);
- domNode.addEventListener(key, oldCallback,
- _VirtualDom_passiveSupported
- && { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }
- );
- allCallbacks[key] = oldCallback;
- }
-}
-
-
-
-// PASSIVE EVENTS
-
-
-var _VirtualDom_passiveSupported;
-
-try
-{
- window.addEventListener('t', null, Object.defineProperty({}, 'passive', {
- get: function() { _VirtualDom_passiveSupported = true; }
- }));
-}
-catch(e) {}
-
-
-
-// EVENT HANDLERS
-
-
-function _VirtualDom_makeCallback(eventNode, initialHandler)
-{
- function callback(event)
- {
- var handler = callback.q;
- var result = _Json_runHelp(handler.a, event);
-
- if (!$elm$core$Result$isOk(result))
- {
- return;
- }
-
- var tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);
-
- // 0 = Normal
- // 1 = MayStopPropagation
- // 2 = MayPreventDefault
- // 3 = Custom
-
- var value = result.a;
- var message = !tag ? value : tag < 3 ? value.a : value.message;
- var stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation;
- var currentEventNode = (
- stopPropagation && event.stopPropagation(),
- (tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(),
- eventNode
- );
- var tagger;
- var i;
- while (tagger = currentEventNode.j)
- {
- if (typeof tagger == 'function')
- {
- message = tagger(message);
- }
- else
- {
- for (var i = tagger.length; i--; )
- {
- message = tagger[i](message);
- }
- }
- currentEventNode = currentEventNode.p;
- }
- currentEventNode(message, stopPropagation); // stopPropagation implies isSync
- }
-
- callback.q = initialHandler;
-
- return callback;
-}
-
-function _VirtualDom_equalEvents(x, y)
-{
- return x.$ == y.$ && _Json_equality(x.a, y.a);
-}
-
-
-
-// DIFF
-
-
-// TODO: Should we do patches like in iOS?
-//
-// type Patch
-// = At Int Patch
-// | Batch (List Patch)
-// | Change ...
-//
-// How could it not be better?
-//
-function _VirtualDom_diff(x, y)
-{
- var patches = [];
- _VirtualDom_diffHelp(x, y, patches, 0);
- return patches;
-}
-
-
-function _VirtualDom_pushPatch(patches, type, index, data)
-{
- var patch = {
- $: type,
- r: index,
- s: data,
- t: undefined,
- u: undefined
- };
- patches.push(patch);
- return patch;
-}
-
-
-function _VirtualDom_diffHelp(x, y, patches, index)
-{
- if (x === y)
- {
- return;
- }
-
- var xType = x.$;
- var yType = y.$;
-
- // Bail if you run into different types of nodes. Implies that the
- // structure has changed significantly and it's not worth a diff.
- if (xType !== yType)
- {
- if (xType === 1 && yType === 2)
- {
- y = _VirtualDom_dekey(y);
- yType = 1;
- }
- else
- {
- _VirtualDom_pushPatch(patches, 0, index, y);
- return;
- }
- }
-
- // Now we know that both nodes are the same $.
- switch (yType)
- {
- case 5:
- var xRefs = x.l;
- var yRefs = y.l;
- var i = xRefs.length;
- var same = i === yRefs.length;
- while (same && i--)
- {
- same = xRefs[i] === yRefs[i];
- }
- if (same)
- {
- y.k = x.k;
- return;
- }
- y.k = y.m();
- var subPatches = [];
- _VirtualDom_diffHelp(x.k, y.k, subPatches, 0);
- subPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);
- return;
-
- case 4:
- // gather nested taggers
- var xTaggers = x.j;
- var yTaggers = y.j;
- var nesting = false;
-
- var xSubNode = x.k;
- while (xSubNode.$ === 4)
- {
- nesting = true;
-
- typeof xTaggers !== 'object'
- ? xTaggers = [xTaggers, xSubNode.j]
- : xTaggers.push(xSubNode.j);
-
- xSubNode = xSubNode.k;
- }
-
- var ySubNode = y.k;
- while (ySubNode.$ === 4)
- {
- nesting = true;
-
- typeof yTaggers !== 'object'
- ? yTaggers = [yTaggers, ySubNode.j]
- : yTaggers.push(ySubNode.j);
-
- ySubNode = ySubNode.k;
- }
-
- // Just bail if different numbers of taggers. This implies the
- // structure of the virtual DOM has changed.
- if (nesting && xTaggers.length !== yTaggers.length)
- {
- _VirtualDom_pushPatch(patches, 0, index, y);
- return;
- }
-
- // check if taggers are "the same"
- if (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)
- {
- _VirtualDom_pushPatch(patches, 2, index, yTaggers);
- }
-
- // diff everything below the taggers
- _VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);
- return;
-
- case 0:
- if (x.a !== y.a)
- {
- _VirtualDom_pushPatch(patches, 3, index, y.a);
- }
- return;
-
- case 1:
- _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);
- return;
-
- case 2:
- _VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);
- return;
-
- case 3:
- if (x.h !== y.h)
- {
- _VirtualDom_pushPatch(patches, 0, index, y);
- return;
- }
-
- var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
- factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
-
- var patch = y.i(x.g, y.g);
- patch && _VirtualDom_pushPatch(patches, 5, index, patch);
-
- return;
- }
-}
-
-// assumes the incoming arrays are the same length
-function _VirtualDom_pairwiseRefEqual(as, bs)
-{
- for (var i = 0; i < as.length; i++)
- {
- if (as[i] !== bs[i])
- {
- return false;
- }
- }
-
- return true;
-}
-
-function _VirtualDom_diffNodes(x, y, patches, index, diffKids)
-{
- // Bail if obvious indicators have changed. Implies more serious
- // structural changes such that it's not worth it to diff.
- if (x.c !== y.c || x.f !== y.f)
- {
- _VirtualDom_pushPatch(patches, 0, index, y);
- return;
- }
-
- var factsDiff = _VirtualDom_diffFacts(x.d, y.d);
- factsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);
-
- diffKids(x, y, patches, index);
-}
-
-
-
-// DIFF FACTS
-
-
-// TODO Instead of creating a new diff object, it's possible to just test if
-// there *is* a diff. During the actual patch, do the diff again and make the
-// modifications directly. This way, there's no new allocations. Worth it?
-function _VirtualDom_diffFacts(x, y, category)
-{
- var diff;
-
- // look for changes and removals
- for (var xKey in x)
- {
- if (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')
- {
- var subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);
- if (subDiff)
- {
- diff = diff || {};
- diff[xKey] = subDiff;
- }
- continue;
- }
-
- // remove if not in the new facts
- if (!(xKey in y))
- {
- diff = diff || {};
- diff[xKey] =
- !category
- ? (typeof x[xKey] === 'string' ? '' : null)
- :
- (category === 'a1')
- ? ''
- :
- (category === 'a0' || category === 'a3')
- ? undefined
- :
- { f: x[xKey].f, o: undefined };
-
- continue;
- }
-
- var xValue = x[xKey];
- var yValue = y[xKey];
-
- // reference equal, so don't worry about it
- if (xValue === yValue && xKey !== 'value' && xKey !== 'checked'
- || category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))
- {
- continue;
- }
-
- diff = diff || {};
- diff[xKey] = yValue;
- }
-
- // add new stuff
- for (var yKey in y)
- {
- if (!(yKey in x))
- {
- diff = diff || {};
- diff[yKey] = y[yKey];
- }
- }
-
- return diff;
-}
-
-
-
-// DIFF KIDS
-
-
-function _VirtualDom_diffKids(xParent, yParent, patches, index)
-{
- var xKids = xParent.e;
- var yKids = yParent.e;
-
- var xLen = xKids.length;
- var yLen = yKids.length;
-
- // FIGURE OUT IF THERE ARE INSERTS OR REMOVALS
-
- if (xLen > yLen)
- {
- _VirtualDom_pushPatch(patches, 6, index, {
- v: yLen,
- i: xLen - yLen
- });
- }
- else if (xLen < yLen)
- {
- _VirtualDom_pushPatch(patches, 7, index, {
- v: xLen,
- e: yKids
- });
- }
-
- // PAIRWISE DIFF EVERYTHING ELSE
-
- for (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)
- {
- var xKid = xKids[i];
- _VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);
- index += xKid.b || 0;
- }
-}
-
-
-
-// KEYED DIFF
-
-
-function _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)
-{
- var localPatches = [];
-
- var changes = {}; // Dict String Entry
- var inserts = []; // Array { index : Int, entry : Entry }
- // type Entry = { tag : String, vnode : VNode, index : Int, data : _ }
-
- var xKids = xParent.e;
- var yKids = yParent.e;
- var xLen = xKids.length;
- var yLen = yKids.length;
- var xIndex = 0;
- var yIndex = 0;
-
- var index = rootIndex;
-
- while (xIndex < xLen && yIndex < yLen)
- {
- var x = xKids[xIndex];
- var y = yKids[yIndex];
-
- var xKey = x.a;
- var yKey = y.a;
- var xNode = x.b;
- var yNode = y.b;
-
- var newMatch = undefined;
- var oldMatch = undefined;
-
- // check if keys match
-
- if (xKey === yKey)
- {
- index++;
- _VirtualDom_diffHelp(xNode, yNode, localPatches, index);
- index += xNode.b || 0;
-
- xIndex++;
- yIndex++;
- continue;
- }
-
- // look ahead 1 to detect insertions and removals.
-
- var xNext = xKids[xIndex + 1];
- var yNext = yKids[yIndex + 1];
-
- if (xNext)
- {
- var xNextKey = xNext.a;
- var xNextNode = xNext.b;
- oldMatch = yKey === xNextKey;
- }
-
- if (yNext)
- {
- var yNextKey = yNext.a;
- var yNextNode = yNext.b;
- newMatch = xKey === yNextKey;
- }
-
-
- // swap x and y
- if (newMatch && oldMatch)
- {
- index++;
- _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
- _VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);
- index += xNode.b || 0;
-
- index++;
- _VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);
- index += xNextNode.b || 0;
-
- xIndex += 2;
- yIndex += 2;
- continue;
- }
-
- // insert y
- if (newMatch)
- {
- index++;
- _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
- _VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);
- index += xNode.b || 0;
-
- xIndex += 1;
- yIndex += 2;
- continue;
- }
-
- // remove x
- if (oldMatch)
- {
- index++;
- _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
- index += xNode.b || 0;
-
- index++;
- _VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);
- index += xNextNode.b || 0;
-
- xIndex += 2;
- yIndex += 1;
- continue;
- }
-
- // remove x, insert y
- if (xNext && xNextKey === yNextKey)
- {
- index++;
- _VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);
- _VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);
- index += xNode.b || 0;
-
- index++;
- _VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);
- index += xNextNode.b || 0;
-
- xIndex += 2;
- yIndex += 2;
- continue;
- }
-
- break;
- }
-
- // eat up any remaining nodes with removeNode and insertNode
-
- while (xIndex < xLen)
- {
- index++;
- var x = xKids[xIndex];
- var xNode = x.b;
- _VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);
- index += xNode.b || 0;
- xIndex++;
- }
-
- while (yIndex < yLen)
- {
- var endInserts = endInserts || [];
- var y = yKids[yIndex];
- _VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);
- yIndex++;
- }
-
- if (localPatches.length > 0 || inserts.length > 0 || endInserts)
- {
- _VirtualDom_pushPatch(patches, 8, rootIndex, {
- w: localPatches,
- x: inserts,
- y: endInserts
- });
- }
-}
-
-
-
-// CHANGES FROM KEYED DIFF
-
-
-var _VirtualDom_POSTFIX = '_elmW6BL';
-
-
-function _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)
-{
- var entry = changes[key];
-
- // never seen this key before
- if (!entry)
- {
- entry = {
- c: 0,
- z: vnode,
- r: yIndex,
- s: undefined
- };
-
- inserts.push({ r: yIndex, A: entry });
- changes[key] = entry;
-
- return;
- }
-
- // this key was removed earlier, a match!
- if (entry.c === 1)
- {
- inserts.push({ r: yIndex, A: entry });
-
- entry.c = 2;
- var subPatches = [];
- _VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);
- entry.r = yIndex;
- entry.s.s = {
- w: subPatches,
- A: entry
- };
-
- return;
- }
-
- // this key has already been inserted or moved, a duplicate!
- _VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);
-}
-
-
-function _VirtualDom_removeNode(changes, localPatches, key, vnode, index)
-{
- var entry = changes[key];
-
- // never seen this key before
- if (!entry)
- {
- var patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);
-
- changes[key] = {
- c: 1,
- z: vnode,
- r: index,
- s: patch
- };
-
- return;
- }
-
- // this key was inserted earlier, a match!
- if (entry.c === 0)
- {
- entry.c = 2;
- var subPatches = [];
- _VirtualDom_diffHelp(vnode, entry.z, subPatches, index);
-
- _VirtualDom_pushPatch(localPatches, 9, index, {
- w: subPatches,
- A: entry
- });
-
- return;
- }
-
- // this key has already been removed or moved, a duplicate!
- _VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);
-}
-
-
-
-// ADD DOM NODES
-//
-// Each DOM node has an "index" assigned in order of traversal. It is important
-// to minimize our crawl over the actual DOM, so these indexes (along with the
-// descendantsCount of virtual nodes) let us skip touching entire subtrees of
-// the DOM if we know there are no patches there.
-
-
-function _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)
-{
- _VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);
-}
-
-
-// assumes `patches` is non-empty and indexes increase monotonically.
-function _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)
-{
- var patch = patches[i];
- var index = patch.r;
-
- while (index === low)
- {
- var patchType = patch.$;
-
- if (patchType === 1)
- {
- _VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);
- }
- else if (patchType === 8)
- {
- patch.t = domNode;
- patch.u = eventNode;
-
- var subPatches = patch.s.w;
- if (subPatches.length > 0)
- {
- _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
- }
- }
- else if (patchType === 9)
- {
- patch.t = domNode;
- patch.u = eventNode;
-
- var data = patch.s;
- if (data)
- {
- data.A.s = domNode;
- var subPatches = data.w;
- if (subPatches.length > 0)
- {
- _VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);
- }
- }
- }
- else
- {
- patch.t = domNode;
- patch.u = eventNode;
- }
-
- i++;
-
- if (!(patch = patches[i]) || (index = patch.r) > high)
- {
- return i;
- }
- }
-
- var tag = vNode.$;
-
- if (tag === 4)
- {
- var subNode = vNode.k;
-
- while (subNode.$ === 4)
- {
- subNode = subNode.k;
- }
-
- return _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);
- }
-
- // tag must be 1 or 2 at this point
-
- var vKids = vNode.e;
- var childNodes = domNode.childNodes;
- for (var j = 0; j < vKids.length; j++)
- {
- low++;
- var vKid = tag === 1 ? vKids[j] : vKids[j].b;
- var nextLow = low + (vKid.b || 0);
- if (low <= index && index <= nextLow)
- {
- i = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);
- if (!(patch = patches[i]) || (index = patch.r) > high)
- {
- return i;
- }
- }
- low = nextLow;
- }
- return i;
-}
-
-
-
-// APPLY PATCHES
-
-
-function _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)
-{
- if (patches.length === 0)
- {
- return rootDomNode;
- }
-
- _VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);
- return _VirtualDom_applyPatchesHelp(rootDomNode, patches);
-}
-
-function _VirtualDom_applyPatchesHelp(rootDomNode, patches)
-{
- for (var i = 0; i < patches.length; i++)
- {
- var patch = patches[i];
- var localDomNode = patch.t
- var newNode = _VirtualDom_applyPatch(localDomNode, patch);
- if (localDomNode === rootDomNode)
- {
- rootDomNode = newNode;
- }
- }
- return rootDomNode;
-}
-
-function _VirtualDom_applyPatch(domNode, patch)
-{
- switch (patch.$)
- {
- case 0:
- return _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);
-
- case 4:
- _VirtualDom_applyFacts(domNode, patch.u, patch.s);
- return domNode;
-
- case 3:
- domNode.replaceData(0, domNode.length, patch.s);
- return domNode;
-
- case 1:
- return _VirtualDom_applyPatchesHelp(domNode, patch.s);
-
- case 2:
- if (domNode.elm_event_node_ref)
- {
- domNode.elm_event_node_ref.j = patch.s;
- }
- else
- {
- domNode.elm_event_node_ref = { j: patch.s, p: patch.u };
- }
- return domNode;
-
- case 6:
- var data = patch.s;
- for (var i = 0; i < data.i; i++)
- {
- domNode.removeChild(domNode.childNodes[data.v]);
- }
- return domNode;
-
- case 7:
- var data = patch.s;
- var kids = data.e;
- var i = data.v;
- var theEnd = domNode.childNodes[i];
- for (; i < kids.length; i++)
- {
- domNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);
- }
- return domNode;
-
- case 9:
- var data = patch.s;
- if (!data)
- {
- domNode.parentNode.removeChild(domNode);
- return domNode;
- }
- var entry = data.A;
- if (typeof entry.r !== 'undefined')
- {
- domNode.parentNode.removeChild(domNode);
- }
- entry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);
- return domNode;
-
- case 8:
- return _VirtualDom_applyPatchReorder(domNode, patch);
-
- case 5:
- return patch.s(domNode);
-
- default:
- _Debug_crash(10); // 'Ran into an unknown patch!'
- }
-}
-
-
-function _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)
-{
- var parentNode = domNode.parentNode;
- var newNode = _VirtualDom_render(vNode, eventNode);
-
- if (!newNode.elm_event_node_ref)
- {
- newNode.elm_event_node_ref = domNode.elm_event_node_ref;
- }
-
- if (parentNode && newNode !== domNode)
- {
- parentNode.replaceChild(newNode, domNode);
- }
- return newNode;
-}
-
-
-function _VirtualDom_applyPatchReorder(domNode, patch)
-{
- var data = patch.s;
-
- // remove end inserts
- var frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);
-
- // removals
- domNode = _VirtualDom_applyPatchesHelp(domNode, data.w);
-
- // inserts
- var inserts = data.x;
- for (var i = 0; i < inserts.length; i++)
- {
- var insert = inserts[i];
- var entry = insert.A;
- var node = entry.c === 2
- ? entry.s
- : _VirtualDom_render(entry.z, patch.u);
- domNode.insertBefore(node, domNode.childNodes[insert.r]);
- }
-
- // add end inserts
- if (frag)
- {
- _VirtualDom_appendChild(domNode, frag);
- }
-
- return domNode;
-}
-
-
-function _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)
-{
- if (!endInserts)
- {
- return;
- }
-
- var frag = _VirtualDom_doc.createDocumentFragment();
- for (var i = 0; i < endInserts.length; i++)
- {
- var insert = endInserts[i];
- var entry = insert.A;
- _VirtualDom_appendChild(frag, entry.c === 2
- ? entry.s
- : _VirtualDom_render(entry.z, patch.u)
- );
- }
- return frag;
-}
-
-
-function _VirtualDom_virtualize(node)
-{
- // TEXT NODES
-
- if (node.nodeType === 3)
- {
- return _VirtualDom_text(node.textContent);
- }
-
-
- // WEIRD NODES
-
- if (node.nodeType !== 1)
- {
- return _VirtualDom_text('');
- }
-
-
- // ELEMENT NODES
-
- var attrList = _List_Nil;
- var attrs = node.attributes;
- for (var i = attrs.length; i--; )
- {
- var attr = attrs[i];
- var name = attr.name;
- var value = attr.value;
- attrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );
- }
-
- var tag = node.tagName.toLowerCase();
- var kidList = _List_Nil;
- var kids = node.childNodes;
-
- for (var i = kids.length; i--; )
- {
- kidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);
- }
- return A3(_VirtualDom_node, tag, attrList, kidList);
-}
-
-function _VirtualDom_dekey(keyedNode)
-{
- var keyedKids = keyedNode.e;
- var len = keyedKids.length;
- var kids = new Array(len);
- for (var i = 0; i < len; i++)
- {
- kids[i] = keyedKids[i].b;
- }
-
- return {
- $: 1,
- c: keyedNode.c,
- d: keyedNode.d,
- e: kids,
- f: keyedNode.f,
- b: keyedNode.b
- };
-}
-
-
-
-
-// ELEMENT
-
-
-var _Debugger_element;
-
-var _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)
-{
- return _Platform_initialize(
- flagDecoder,
- args,
- impl.init,
- impl.update,
- impl.subscriptions,
- function(sendToApp, initialModel) {
- var view = impl.view;
- /**_UNUSED/
- var domNode = args['node'];
- //*/
- /**/
- var domNode = args && args['node'] ? args['node'] : _Debug_crash(0);
- //*/
- var currNode = _VirtualDom_virtualize(domNode);
-
- return _Browser_makeAnimator(initialModel, function(model)
- {
- var nextNode = view(model);
- var patches = _VirtualDom_diff(currNode, nextNode);
- domNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);
- currNode = nextNode;
- });
- }
- );
-});
-
-
-
-// DOCUMENT
-
-
-var _Debugger_document;
-
-var _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)
-{
- return _Platform_initialize(
- flagDecoder,
- args,
- impl.init,
- impl.update,
- impl.subscriptions,
- function(sendToApp, initialModel) {
- var divertHrefToApp = impl.setup && impl.setup(sendToApp)
- var view = impl.view;
- var title = _VirtualDom_doc.title;
- var bodyNode = _VirtualDom_doc.body;
- var currNode = _VirtualDom_virtualize(bodyNode);
- return _Browser_makeAnimator(initialModel, function(model)
- {
- _VirtualDom_divertHrefToApp = divertHrefToApp;
- var doc = view(model);
- var nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body);
- var patches = _VirtualDom_diff(currNode, nextNode);
- bodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);
- currNode = nextNode;
- _VirtualDom_divertHrefToApp = 0;
- (title !== doc.title) && (_VirtualDom_doc.title = title = doc.title);
- });
- }
- );
-});
-
-
-
-// ANIMATION
-
-
-var _Browser_cancelAnimationFrame =
- typeof cancelAnimationFrame !== 'undefined'
- ? cancelAnimationFrame
- : function(id) { clearTimeout(id); };
-
-var _Browser_requestAnimationFrame =
- typeof requestAnimationFrame !== 'undefined'
- ? requestAnimationFrame
- : function(callback) { return setTimeout(callback, 1000 / 60); };
-
-
-function _Browser_makeAnimator(model, draw)
-{
- draw(model);
-
- var state = 0;
-
- function updateIfNeeded()
- {
- state = state === 1
- ? 0
- : ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );
- }
-
- return function(nextModel, isSync)
- {
- model = nextModel;
-
- isSync
- ? ( draw(model),
- state === 2 && (state = 1)
- )
- : ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),
- state = 2
- );
- };
-}
-
-
-
-// APPLICATION
-
-
-function _Browser_application(impl)
-{
- var onUrlChange = impl.onUrlChange;
- var onUrlRequest = impl.onUrlRequest;
- var key = function() { key.a(onUrlChange(_Browser_getUrl())); };
-
- return _Browser_document({
- setup: function(sendToApp)
- {
- key.a = sendToApp;
- _Browser_window.addEventListener('popstate', key);
- _Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);
-
- return F2(function(domNode, event)
- {
- if (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))
- {
- event.preventDefault();
- var href = domNode.href;
- var curr = _Browser_getUrl();
- var next = $elm$url$Url$fromString(href).a;
- sendToApp(onUrlRequest(
- (next
- && curr.protocol === next.protocol
- && curr.host === next.host
- && curr.port_.a === next.port_.a
- )
- ? $elm$browser$Browser$Internal(next)
- : $elm$browser$Browser$External(href)
- ));
- }
- });
- },
- init: function(flags)
- {
- return A3(impl.init, flags, _Browser_getUrl(), key);
- },
- view: impl.view,
- update: impl.update,
- subscriptions: impl.subscriptions
- });
-}
-
-function _Browser_getUrl()
-{
- return $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);
-}
-
-var _Browser_go = F2(function(key, n)
-{
- return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
- n && history.go(n);
- key();
- }));
-});
-
-var _Browser_pushUrl = F2(function(key, url)
-{
- return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
- history.pushState({}, '', url);
- key();
- }));
-});
-
-var _Browser_replaceUrl = F2(function(key, url)
-{
- return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {
- history.replaceState({}, '', url);
- key();
- }));
-});
-
-
-
-// GLOBAL EVENTS
-
-
-var _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };
-var _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;
-var _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;
-
-var _Browser_on = F3(function(node, eventName, sendToSelf)
-{
- return _Scheduler_spawn(_Scheduler_binding(function(callback)
- {
- function handler(event) { _Scheduler_rawSpawn(sendToSelf(event)); }
- node.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });
- return function() { node.removeEventListener(eventName, handler); };
- }));
-});
-
-var _Browser_decodeEvent = F2(function(decoder, event)
-{
- var result = _Json_runHelp(decoder, event);
- return $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;
-});
-
-
-
-// PAGE VISIBILITY
-
-
-function _Browser_visibilityInfo()
-{
- return (typeof _VirtualDom_doc.hidden !== 'undefined')
- ? { hidden: 'hidden', change: 'visibilitychange' }
- :
- (typeof _VirtualDom_doc.mozHidden !== 'undefined')
- ? { hidden: 'mozHidden', change: 'mozvisibilitychange' }
- :
- (typeof _VirtualDom_doc.msHidden !== 'undefined')
- ? { hidden: 'msHidden', change: 'msvisibilitychange' }
- :
- (typeof _VirtualDom_doc.webkitHidden !== 'undefined')
- ? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' }
- : { hidden: 'hidden', change: 'visibilitychange' };
-}
-
-
-
-// ANIMATION FRAMES
-
-
-function _Browser_rAF()
-{
- return _Scheduler_binding(function(callback)
- {
- var id = _Browser_requestAnimationFrame(function() {
- callback(_Scheduler_succeed(Date.now()));
- });
-
- return function() {
- _Browser_cancelAnimationFrame(id);
- };
- });
-}
-
-
-function _Browser_now()
-{
- return _Scheduler_binding(function(callback)
- {
- callback(_Scheduler_succeed(Date.now()));
- });
-}
-
-
-
-// DOM STUFF
-
-
-function _Browser_withNode(id, doStuff)
-{
- return _Scheduler_binding(function(callback)
- {
- _Browser_requestAnimationFrame(function() {
- var node = document.getElementById(id);
- callback(node
- ? _Scheduler_succeed(doStuff(node))
- : _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))
- );
- });
- });
-}
-
-
-function _Browser_withWindow(doStuff)
-{
- return _Scheduler_binding(function(callback)
- {
- _Browser_requestAnimationFrame(function() {
- callback(_Scheduler_succeed(doStuff()));
- });
- });
-}
-
-
-// FOCUS and BLUR
-
-
-var _Browser_call = F2(function(functionName, id)
-{
- return _Browser_withNode(id, function(node) {
- node[functionName]();
- return _Utils_Tuple0;
- });
-});
-
-
-
-// WINDOW VIEWPORT
-
-
-function _Browser_getViewport()
-{
- return {
- scene: _Browser_getScene(),
- viewport: {
- x: _Browser_window.pageXOffset,
- y: _Browser_window.pageYOffset,
- width: _Browser_doc.documentElement.clientWidth,
- height: _Browser_doc.documentElement.clientHeight
- }
- };
-}
-
-function _Browser_getScene()
-{
- var body = _Browser_doc.body;
- var elem = _Browser_doc.documentElement;
- return {
- width: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),
- height: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)
- };
-}
-
-var _Browser_setViewport = F2(function(x, y)
-{
- return _Browser_withWindow(function()
- {
- _Browser_window.scroll(x, y);
- return _Utils_Tuple0;
- });
-});
-
-
-
-// ELEMENT VIEWPORT
-
-
-function _Browser_getViewportOf(id)
-{
- return _Browser_withNode(id, function(node)
- {
- return {
- scene: {
- width: node.scrollWidth,
- height: node.scrollHeight
- },
- viewport: {
- x: node.scrollLeft,
- y: node.scrollTop,
- width: node.clientWidth,
- height: node.clientHeight
- }
- };
- });
-}
-
-
-var _Browser_setViewportOf = F3(function(id, x, y)
-{
- return _Browser_withNode(id, function(node)
- {
- node.scrollLeft = x;
- node.scrollTop = y;
- return _Utils_Tuple0;
- });
-});
-
-
-
-// ELEMENT
-
-
-function _Browser_getElement(id)
-{
- return _Browser_withNode(id, function(node)
- {
- var rect = node.getBoundingClientRect();
- var x = _Browser_window.pageXOffset;
- var y = _Browser_window.pageYOffset;
- return {
- scene: _Browser_getScene(),
- viewport: {
- x: x,
- y: y,
- width: _Browser_doc.documentElement.clientWidth,
- height: _Browser_doc.documentElement.clientHeight
- },
- element: {
- x: x + rect.left,
- y: y + rect.top,
- width: rect.width,
- height: rect.height
- }
- };
- });
-}
-
-
-
-// LOAD and RELOAD
-
-
-function _Browser_reload(skipCache)
-{
- return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
- {
- _VirtualDom_doc.location.reload(skipCache);
- }));
-}
-
-function _Browser_load(url)
-{
- return A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)
- {
- try
- {
- _Browser_window.location = url;
- }
- catch(err)
- {
- // Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.
- // Other browsers reload the page, so let's be consistent about that.
- _VirtualDom_doc.location.reload(false);
- }
- }));
-}
-var $elm$core$Basics$EQ = {$: 'EQ'};
-var $elm$core$Basics$GT = {$: 'GT'};
-var $elm$core$Basics$LT = {$: 'LT'};
-var $elm$core$List$cons = _List_cons;
-var $elm$core$Dict$foldr = F3(
- function (func, acc, t) {
- foldr:
- while (true) {
- if (t.$ === 'RBEmpty_elm_builtin') {
- return acc;
- } else {
- var key = t.b;
- var value = t.c;
- var left = t.d;
- var right = t.e;
- var $temp$func = func,
- $temp$acc = A3(
- func,
- key,
- value,
- A3($elm$core$Dict$foldr, func, acc, right)),
- $temp$t = left;
- func = $temp$func;
- acc = $temp$acc;
- t = $temp$t;
- continue foldr;
- }
- }
- });
-var $elm$core$Dict$toList = function (dict) {
- return A3(
- $elm$core$Dict$foldr,
- F3(
- function (key, value, list) {
- return A2(
- $elm$core$List$cons,
- _Utils_Tuple2(key, value),
- list);
- }),
- _List_Nil,
- dict);
-};
-var $elm$core$Dict$keys = function (dict) {
- return A3(
- $elm$core$Dict$foldr,
- F3(
- function (key, value, keyList) {
- return A2($elm$core$List$cons, key, keyList);
- }),
- _List_Nil,
- dict);
-};
-var $elm$core$Set$toList = function (_v0) {
- var dict = _v0.a;
- return $elm$core$Dict$keys(dict);
-};
-var $elm$core$Elm$JsArray$foldr = _JsArray_foldr;
-var $elm$core$Array$foldr = F3(
- function (func, baseCase, _v0) {
- var tree = _v0.c;
- var tail = _v0.d;
- var helper = F2(
- function (node, acc) {
- if (node.$ === 'SubTree') {
- var subTree = node.a;
- return A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);
- } else {
- var values = node.a;
- return A3($elm$core$Elm$JsArray$foldr, func, acc, values);
- }
- });
- return A3(
- $elm$core$Elm$JsArray$foldr,
- helper,
- A3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),
- tree);
- });
-var $elm$core$Array$toList = function (array) {
- return A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);
-};
-var $elm$core$Result$Err = function (a) {
- return {$: 'Err', a: a};
-};
-var $elm$json$Json$Decode$Failure = F2(
- function (a, b) {
- return {$: 'Failure', a: a, b: b};
- });
-var $elm$json$Json$Decode$Field = F2(
- function (a, b) {
- return {$: 'Field', a: a, b: b};
- });
-var $elm$json$Json$Decode$Index = F2(
- function (a, b) {
- return {$: 'Index', a: a, b: b};
- });
-var $elm$core$Result$Ok = function (a) {
- return {$: 'Ok', a: a};
-};
-var $elm$json$Json$Decode$OneOf = function (a) {
- return {$: 'OneOf', a: a};
-};
-var $elm$core$Basics$False = {$: 'False'};
-var $elm$core$Basics$add = _Basics_add;
-var $elm$core$Maybe$Just = function (a) {
- return {$: 'Just', a: a};
-};
-var $elm$core$Maybe$Nothing = {$: 'Nothing'};
-var $elm$core$String$all = _String_all;
-var $elm$core$Basics$and = _Basics_and;
-var $elm$core$Basics$append = _Utils_append;
-var $elm$json$Json$Encode$encode = _Json_encode;
-var $elm$core$String$fromInt = _String_fromNumber;
-var $elm$core$String$join = F2(
- function (sep, chunks) {
- return A2(
- _String_join,
- sep,
- _List_toArray(chunks));
- });
-var $elm$core$String$split = F2(
- function (sep, string) {
- return _List_fromArray(
- A2(_String_split, sep, string));
- });
-var $elm$json$Json$Decode$indent = function (str) {
- return A2(
- $elm$core$String$join,
- '\n ',
- A2($elm$core$String$split, '\n', str));
-};
-var $elm$core$List$foldl = F3(
- function (func, acc, list) {
- foldl:
- while (true) {
- if (!list.b) {
- return acc;
- } else {
- var x = list.a;
- var xs = list.b;
- var $temp$func = func,
- $temp$acc = A2(func, x, acc),
- $temp$list = xs;
- func = $temp$func;
- acc = $temp$acc;
- list = $temp$list;
- continue foldl;
- }
- }
- });
-var $elm$core$List$length = function (xs) {
- return A3(
- $elm$core$List$foldl,
- F2(
- function (_v0, i) {
- return i + 1;
- }),
- 0,
- xs);
-};
-var $elm$core$List$map2 = _List_map2;
-var $elm$core$Basics$le = _Utils_le;
-var $elm$core$Basics$sub = _Basics_sub;
-var $elm$core$List$rangeHelp = F3(
- function (lo, hi, list) {
- rangeHelp:
- while (true) {
- if (_Utils_cmp(lo, hi) < 1) {
- var $temp$lo = lo,
- $temp$hi = hi - 1,
- $temp$list = A2($elm$core$List$cons, hi, list);
- lo = $temp$lo;
- hi = $temp$hi;
- list = $temp$list;
- continue rangeHelp;
- } else {
- return list;
- }
- }
- });
-var $elm$core$List$range = F2(
- function (lo, hi) {
- return A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);
- });
-var $elm$core$List$indexedMap = F2(
- function (f, xs) {
- return A3(
- $elm$core$List$map2,
- f,
- A2(
- $elm$core$List$range,
- 0,
- $elm$core$List$length(xs) - 1),
- xs);
- });
-var $elm$core$Char$toCode = _Char_toCode;
-var $elm$core$Char$isLower = function (_char) {
- var code = $elm$core$Char$toCode(_char);
- return (97 <= code) && (code <= 122);
-};
-var $elm$core$Char$isUpper = function (_char) {
- var code = $elm$core$Char$toCode(_char);
- return (code <= 90) && (65 <= code);
-};
-var $elm$core$Basics$or = _Basics_or;
-var $elm$core$Char$isAlpha = function (_char) {
- return $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);
-};
-var $elm$core$Char$isDigit = function (_char) {
- var code = $elm$core$Char$toCode(_char);
- return (code <= 57) && (48 <= code);
-};
-var $elm$core$Char$isAlphaNum = function (_char) {
- return $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));
-};
-var $elm$core$List$reverse = function (list) {
- return A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);
-};
-var $elm$core$String$uncons = _String_uncons;
-var $elm$json$Json$Decode$errorOneOf = F2(
- function (i, error) {
- return '\n\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(
- $elm$json$Json$Decode$errorToString(error))));
- });
-var $elm$json$Json$Decode$errorToString = function (error) {
- return A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);
-};
-var $elm$json$Json$Decode$errorToStringHelp = F2(
- function (error, context) {
- errorToStringHelp:
- while (true) {
- switch (error.$) {
- case 'Field':
- var f = error.a;
- var err = error.b;
- var isSimple = function () {
- var _v1 = $elm$core$String$uncons(f);
- if (_v1.$ === 'Nothing') {
- return false;
- } else {
- var _v2 = _v1.a;
- var _char = _v2.a;
- var rest = _v2.b;
- return $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);
- }
- }();
- var fieldName = isSimple ? ('.' + f) : ('[\'' + (f + '\']'));
- var $temp$error = err,
- $temp$context = A2($elm$core$List$cons, fieldName, context);
- error = $temp$error;
- context = $temp$context;
- continue errorToStringHelp;
- case 'Index':
- var i = error.a;
- var err = error.b;
- var indexName = '[' + ($elm$core$String$fromInt(i) + ']');
- var $temp$error = err,
- $temp$context = A2($elm$core$List$cons, indexName, context);
- error = $temp$error;
- context = $temp$context;
- continue errorToStringHelp;
- case 'OneOf':
- var errors = error.a;
- if (!errors.b) {
- return 'Ran into a Json.Decode.oneOf with no possibilities' + function () {
- if (!context.b) {
- return '!';
- } else {
- return ' at json' + A2(
- $elm$core$String$join,
- '',
- $elm$core$List$reverse(context));
- }
- }();
- } else {
- if (!errors.b.b) {
- var err = errors.a;
- var $temp$error = err,
- $temp$context = context;
- error = $temp$error;
- context = $temp$context;
- continue errorToStringHelp;
- } else {
- var starter = function () {
- if (!context.b) {
- return 'Json.Decode.oneOf';
- } else {
- return 'The Json.Decode.oneOf at json' + A2(
- $elm$core$String$join,
- '',
- $elm$core$List$reverse(context));
- }
- }();
- var introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(
- $elm$core$List$length(errors)) + ' ways:'));
- return A2(
- $elm$core$String$join,
- '\n\n',
- A2(
- $elm$core$List$cons,
- introduction,
- A2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));
- }
- }
- default:
- var msg = error.a;
- var json = error.b;
- var introduction = function () {
- if (!context.b) {
- return 'Problem with the given value:\n\n';
- } else {
- return 'Problem with the value at json' + (A2(
- $elm$core$String$join,
- '',
- $elm$core$List$reverse(context)) + ':\n\n ');
- }
- }();
- return introduction + ($elm$json$Json$Decode$indent(
- A2($elm$json$Json$Encode$encode, 4, json)) + ('\n\n' + msg));
- }
- }
- });
-var $elm$core$Array$branchFactor = 32;
-var $elm$core$Array$Array_elm_builtin = F4(
- function (a, b, c, d) {
- return {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d};
- });
-var $elm$core$Elm$JsArray$empty = _JsArray_empty;
-var $elm$core$Basics$ceiling = _Basics_ceiling;
-var $elm$core$Basics$fdiv = _Basics_fdiv;
-var $elm$core$Basics$logBase = F2(
- function (base, number) {
- return _Basics_log(number) / _Basics_log(base);
- });
-var $elm$core$Basics$toFloat = _Basics_toFloat;
-var $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(
- A2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));
-var $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty);
-var $elm$core$Elm$JsArray$initialize = _JsArray_initialize;
-var $elm$core$Array$Leaf = function (a) {
- return {$: 'Leaf', a: a};
-};
-var $elm$core$Basics$apL = F2(
- function (f, x) {
- return f(x);
- });
-var $elm$core$Basics$apR = F2(
- function (x, f) {
- return f(x);
- });
-var $elm$core$Basics$eq = _Utils_equal;
-var $elm$core$Basics$floor = _Basics_floor;
-var $elm$core$Elm$JsArray$length = _JsArray_length;
-var $elm$core$Basics$gt = _Utils_gt;
-var $elm$core$Basics$max = F2(
- function (x, y) {
- return (_Utils_cmp(x, y) > 0) ? x : y;
- });
-var $elm$core$Basics$mul = _Basics_mul;
-var $elm$core$Array$SubTree = function (a) {
- return {$: 'SubTree', a: a};
-};
-var $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;
-var $elm$core$Array$compressNodes = F2(
- function (nodes, acc) {
- compressNodes:
- while (true) {
- var _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);
- var node = _v0.a;
- var remainingNodes = _v0.b;
- var newAcc = A2(
- $elm$core$List$cons,
- $elm$core$Array$SubTree(node),
- acc);
- if (!remainingNodes.b) {
- return $elm$core$List$reverse(newAcc);
- } else {
- var $temp$nodes = remainingNodes,
- $temp$acc = newAcc;
- nodes = $temp$nodes;
- acc = $temp$acc;
- continue compressNodes;
- }
- }
- });
-var $elm$core$Tuple$first = function (_v0) {
- var x = _v0.a;
- return x;
-};
-var $elm$core$Array$treeFromBuilder = F2(
- function (nodeList, nodeListSize) {
- treeFromBuilder:
- while (true) {
- var newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);
- if (newNodeSize === 1) {
- return A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;
- } else {
- var $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),
- $temp$nodeListSize = newNodeSize;
- nodeList = $temp$nodeList;
- nodeListSize = $temp$nodeListSize;
- continue treeFromBuilder;
- }
- }
- });
-var $elm$core$Array$builderToArray = F2(
- function (reverseNodeList, builder) {
- if (!builder.nodeListSize) {
- return A4(
- $elm$core$Array$Array_elm_builtin,
- $elm$core$Elm$JsArray$length(builder.tail),
- $elm$core$Array$shiftStep,
- $elm$core$Elm$JsArray$empty,
- builder.tail);
- } else {
- var treeLen = builder.nodeListSize * $elm$core$Array$branchFactor;
- var depth = $elm$core$Basics$floor(
- A2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));
- var correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList;
- var tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize);
- return A4(
- $elm$core$Array$Array_elm_builtin,
- $elm$core$Elm$JsArray$length(builder.tail) + treeLen,
- A2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),
- tree,
- builder.tail);
- }
- });
-var $elm$core$Basics$idiv = _Basics_idiv;
-var $elm$core$Basics$lt = _Utils_lt;
-var $elm$core$Array$initializeHelp = F5(
- function (fn, fromIndex, len, nodeList, tail) {
- initializeHelp:
- while (true) {
- if (fromIndex < 0) {
- return A2(
- $elm$core$Array$builderToArray,
- false,
- {nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail});
- } else {
- var leaf = $elm$core$Array$Leaf(
- A3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));
- var $temp$fn = fn,
- $temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,
- $temp$len = len,
- $temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),
- $temp$tail = tail;
- fn = $temp$fn;
- fromIndex = $temp$fromIndex;
- len = $temp$len;
- nodeList = $temp$nodeList;
- tail = $temp$tail;
- continue initializeHelp;
- }
- }
- });
-var $elm$core$Basics$remainderBy = _Basics_remainderBy;
-var $elm$core$Array$initialize = F2(
- function (len, fn) {
- if (len <= 0) {
- return $elm$core$Array$empty;
- } else {
- var tailLen = len % $elm$core$Array$branchFactor;
- var tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);
- var initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;
- return A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);
- }
- });
-var $elm$core$Basics$True = {$: 'True'};
-var $elm$core$Result$isOk = function (result) {
- if (result.$ === 'Ok') {
- return true;
- } else {
- return false;
- }
-};
-var $elm$json$Json$Decode$map = _Json_map1;
-var $elm$json$Json$Decode$map2 = _Json_map2;
-var $elm$json$Json$Decode$succeed = _Json_succeed;
-var $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {
- switch (handler.$) {
- case 'Normal':
- return 0;
- case 'MayStopPropagation':
- return 1;
- case 'MayPreventDefault':
- return 2;
- default:
- return 3;
- }
-};
-var $elm$browser$Browser$External = function (a) {
- return {$: 'External', a: a};
-};
-var $elm$browser$Browser$Internal = function (a) {
- return {$: 'Internal', a: a};
-};
-var $elm$core$Basics$identity = function (x) {
- return x;
-};
-var $elm$browser$Browser$Dom$NotFound = function (a) {
- return {$: 'NotFound', a: a};
-};
-var $elm$url$Url$Http = {$: 'Http'};
-var $elm$url$Url$Https = {$: 'Https'};
-var $elm$url$Url$Url = F6(
- function (protocol, host, port_, path, query, fragment) {
- return {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query};
- });
-var $elm$core$String$contains = _String_contains;
-var $elm$core$String$length = _String_length;
-var $elm$core$String$slice = _String_slice;
-var $elm$core$String$dropLeft = F2(
- function (n, string) {
- return (n < 1) ? string : A3(
- $elm$core$String$slice,
- n,
- $elm$core$String$length(string),
- string);
- });
-var $elm$core$String$indexes = _String_indexes;
-var $elm$core$String$isEmpty = function (string) {
- return string === '';
-};
-var $elm$core$String$left = F2(
- function (n, string) {
- return (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);
- });
-var $elm$core$String$toInt = _String_toInt;
-var $elm$url$Url$chompBeforePath = F5(
- function (protocol, path, params, frag, str) {
- if ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {
- return $elm$core$Maybe$Nothing;
- } else {
- var _v0 = A2($elm$core$String$indexes, ':', str);
- if (!_v0.b) {
- return $elm$core$Maybe$Just(
- A6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));
- } else {
- if (!_v0.b.b) {
- var i = _v0.a;
- var _v1 = $elm$core$String$toInt(
- A2($elm$core$String$dropLeft, i + 1, str));
- if (_v1.$ === 'Nothing') {
- return $elm$core$Maybe$Nothing;
- } else {
- var port_ = _v1;
- return $elm$core$Maybe$Just(
- A6(
- $elm$url$Url$Url,
- protocol,
- A2($elm$core$String$left, i, str),
- port_,
- path,
- params,
- frag));
- }
- } else {
- return $elm$core$Maybe$Nothing;
- }
- }
- }
- });
-var $elm$url$Url$chompBeforeQuery = F4(
- function (protocol, params, frag, str) {
- if ($elm$core$String$isEmpty(str)) {
- return $elm$core$Maybe$Nothing;
- } else {
- var _v0 = A2($elm$core$String$indexes, '/', str);
- if (!_v0.b) {
- return A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);
- } else {
- var i = _v0.a;
- return A5(
- $elm$url$Url$chompBeforePath,
- protocol,
- A2($elm$core$String$dropLeft, i, str),
- params,
- frag,
- A2($elm$core$String$left, i, str));
- }
- }
- });
-var $elm$url$Url$chompBeforeFragment = F3(
- function (protocol, frag, str) {
- if ($elm$core$String$isEmpty(str)) {
- return $elm$core$Maybe$Nothing;
- } else {
- var _v0 = A2($elm$core$String$indexes, '?', str);
- if (!_v0.b) {
- return A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);
- } else {
- var i = _v0.a;
- return A4(
- $elm$url$Url$chompBeforeQuery,
- protocol,
- $elm$core$Maybe$Just(
- A2($elm$core$String$dropLeft, i + 1, str)),
- frag,
- A2($elm$core$String$left, i, str));
- }
- }
- });
-var $elm$url$Url$chompAfterProtocol = F2(
- function (protocol, str) {
- if ($elm$core$String$isEmpty(str)) {
- return $elm$core$Maybe$Nothing;
- } else {
- var _v0 = A2($elm$core$String$indexes, '#', str);
- if (!_v0.b) {
- return A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);
- } else {
- var i = _v0.a;
- return A3(
- $elm$url$Url$chompBeforeFragment,
- protocol,
- $elm$core$Maybe$Just(
- A2($elm$core$String$dropLeft, i + 1, str)),
- A2($elm$core$String$left, i, str));
- }
- }
- });
-var $elm$core$String$startsWith = _String_startsWith;
-var $elm$url$Url$fromString = function (str) {
- return A2($elm$core$String$startsWith, 'http://', str) ? A2(
- $elm$url$Url$chompAfterProtocol,
- $elm$url$Url$Http,
- A2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(
- $elm$url$Url$chompAfterProtocol,
- $elm$url$Url$Https,
- A2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);
-};
-var $elm$core$Basics$never = function (_v0) {
- never:
- while (true) {
- var nvr = _v0.a;
- var $temp$_v0 = nvr;
- _v0 = $temp$_v0;
- continue never;
- }
-};
-var $elm$core$Task$Perform = function (a) {
- return {$: 'Perform', a: a};
-};
-var $elm$core$Task$succeed = _Scheduler_succeed;
-var $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0);
-var $elm$core$List$foldrHelper = F4(
- function (fn, acc, ctr, ls) {
- if (!ls.b) {
- return acc;
- } else {
- var a = ls.a;
- var r1 = ls.b;
- if (!r1.b) {
- return A2(fn, a, acc);
- } else {
- var b = r1.a;
- var r2 = r1.b;
- if (!r2.b) {
- return A2(
- fn,
- a,
- A2(fn, b, acc));
- } else {
- var c = r2.a;
- var r3 = r2.b;
- if (!r3.b) {
- return A2(
- fn,
- a,
- A2(
- fn,
- b,
- A2(fn, c, acc)));
- } else {
- var d = r3.a;
- var r4 = r3.b;
- var res = (ctr > 500) ? A3(
- $elm$core$List$foldl,
- fn,
- acc,
- $elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);
- return A2(
- fn,
- a,
- A2(
- fn,
- b,
- A2(
- fn,
- c,
- A2(fn, d, res))));
- }
- }
- }
- }
- });
-var $elm$core$List$foldr = F3(
- function (fn, acc, ls) {
- return A4($elm$core$List$foldrHelper, fn, acc, 0, ls);
- });
-var $elm$core$List$map = F2(
- function (f, xs) {
- return A3(
- $elm$core$List$foldr,
- F2(
- function (x, acc) {
- return A2(
- $elm$core$List$cons,
- f(x),
- acc);
- }),
- _List_Nil,
- xs);
- });
-var $elm$core$Task$andThen = _Scheduler_andThen;
-var $elm$core$Task$map = F2(
- function (func, taskA) {
- return A2(
- $elm$core$Task$andThen,
- function (a) {
- return $elm$core$Task$succeed(
- func(a));
- },
- taskA);
- });
-var $elm$core$Task$map2 = F3(
- function (func, taskA, taskB) {
- return A2(
- $elm$core$Task$andThen,
- function (a) {
- return A2(
- $elm$core$Task$andThen,
- function (b) {
- return $elm$core$Task$succeed(
- A2(func, a, b));
- },
- taskB);
- },
- taskA);
- });
-var $elm$core$Task$sequence = function (tasks) {
- return A3(
- $elm$core$List$foldr,
- $elm$core$Task$map2($elm$core$List$cons),
- $elm$core$Task$succeed(_List_Nil),
- tasks);
-};
-var $elm$core$Platform$sendToApp = _Platform_sendToApp;
-var $elm$core$Task$spawnCmd = F2(
- function (router, _v0) {
- var task = _v0.a;
- return _Scheduler_spawn(
- A2(
- $elm$core$Task$andThen,
- $elm$core$Platform$sendToApp(router),
- task));
- });
-var $elm$core$Task$onEffects = F3(
- function (router, commands, state) {
- return A2(
- $elm$core$Task$map,
- function (_v0) {
- return _Utils_Tuple0;
- },
- $elm$core$Task$sequence(
- A2(
- $elm$core$List$map,
- $elm$core$Task$spawnCmd(router),
- commands)));
- });
-var $elm$core$Task$onSelfMsg = F3(
- function (_v0, _v1, _v2) {
- return $elm$core$Task$succeed(_Utils_Tuple0);
- });
-var $elm$core$Task$cmdMap = F2(
- function (tagger, _v0) {
- var task = _v0.a;
- return $elm$core$Task$Perform(
- A2($elm$core$Task$map, tagger, task));
- });
-_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);
-var $elm$core$Task$command = _Platform_leaf('Task');
-var $elm$core$Task$perform = F2(
- function (toMessage, task) {
- return $elm$core$Task$command(
- $elm$core$Task$Perform(
- A2($elm$core$Task$map, toMessage, task)));
- });
-var $elm$browser$Browser$element = _Browser_element;
-var $elm$json$Json$Encode$null = _Json_encodeNull;
-var $author$project$Main$startCounters = _Platform_outgoingPort(
- 'startCounters',
- function ($) {
- return $elm$json$Json$Encode$null;
- });
-var $author$project$Main$init = function (_v0) {
- return _Utils_Tuple2(
- {},
- $author$project$Main$startCounters(_Utils_Tuple0));
-};
-var $elm$core$Platform$Sub$batch = _Platform_batch;
-var $elm$core$Platform$Sub$none = $elm$core$Platform$Sub$batch(_List_Nil);
-var $author$project$Main$subscriptions = function (model) {
- return $elm$core$Platform$Sub$none;
-};
-var $elm$core$Platform$Cmd$batch = _Platform_batch;
-var $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);
-var $author$project$Main$update = F2(
- function (msg, model) {
- return _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);
- });
-var $elm$html$Html$div = _VirtualDom_node('div');
-var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
-var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
-var $author$project$Main$view = function (model) {
- return A2(
- $elm$html$Html$div,
- _List_Nil,
- _List_fromArray(
- [
- $elm$html$Html$text('Hello')
- ]));
-};
-var $author$project$Main$main = $elm$browser$Browser$element(
- {init: $author$project$Main$init, subscriptions: $author$project$Main$subscriptions, update: $author$project$Main$update, view: $author$project$Main$view});
-_Platform_export({'Main':{'init':$author$project$Main$main(
- $elm$json$Json$Decode$succeed(_Utils_Tuple0))(0)}});}(this));
\ No newline at end of file
diff --git a/codectrl-web/src/lib/server/lucia.ts b/codectrl-web/src/lib/server/lucia.ts
deleted file mode 100644
index d0870b0..0000000
--- a/codectrl-web/src/lib/server/lucia.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { dev } from '$app/environment';
-import { PrismaClient } from '@prisma/client';
-import lucia from 'lucia-auth';
-import prisma from '@lucia-auth/adapter-prisma';
-import { github, discord } from '@lucia-auth/oauth/providers';
-import { GITHUB_SECRET, GITHUB_ID, DISCORD_ID, DISCORD_SECRET } from '$env/static/private';
-import { base } from '$app/paths';
-
-const client = new PrismaClient();
-
-export const auth = lucia({
- adapter: prisma(client),
- env: dev ? 'DEV' : 'PROD',
- autoDatabaseCleanup: true,
- transformUserData: (userData) => {
- return userData;
- }
-});
-
-export const githubAuth = github(auth, { clientId: GITHUB_ID, clientSecret: GITHUB_SECRET });
-export const discordAuth = discord(auth, {
- clientId: DISCORD_ID,
- clientSecret: DISCORD_SECRET,
- redirectUri: base
-});
-
-export type Auth = typeof auth;
-export type GithubAuth = typeof githubAuth;
diff --git a/codectrl-web/src/lib/server/stores/user.ts b/codectrl-web/src/lib/server/stores/user.ts
deleted file mode 100644
index ad2672c..0000000
--- a/codectrl-web/src/lib/server/stores/user.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { writable, type Writable } from 'svelte/store';
-
-export const USER_ID: Writable = writable();
diff --git a/codectrl-web/src/routes/+layout.server.ts b/codectrl-web/src/routes/+layout.server.ts
deleted file mode 100644
index c9a806c..0000000
--- a/codectrl-web/src/routes/+layout.server.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { handleServerSession } from '@lucia-auth/sveltekit';
-
-export const load = handleServerSession();
diff --git a/codectrl-web/src/routes/+layout.svelte b/codectrl-web/src/routes/+layout.svelte
deleted file mode 100644
index 2f5a76b..0000000
--- a/codectrl-web/src/routes/+layout.svelte
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-{#if !$user}
- Login
-{:else}
-
-{/if}
diff --git a/codectrl-web/src/routes/+page.server.ts b/codectrl-web/src/routes/+page.server.ts
deleted file mode 100644
index 04d3a9e..0000000
--- a/codectrl-web/src/routes/+page.server.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { githubAuth } from '$lib/server/lucia';
-import type { Action, PageServerLoad } from './$types';
-import { auth } from '$lib/server/lucia';
-import { fail } from '@sveltejs/kit';
-import type { Actions } from './$types';
-
-export const load = (async ({ locals }) => {
- const [url, _] = await githubAuth.getAuthorizationUrl();
- const { session, user } = await locals.validateUser();
-
- return { url: url.toString(), session, user };
-}) satisfies PageServerLoad;
-
-export const actions: Actions = {
- default: async ({ locals }) => {
- const session = await locals.validate();
- if (!session) return fail(401);
- await auth.invalidateSession(session.sessionId); // invalidate session
- locals.setSession(null); // remove cookie
- }
-};
diff --git a/codectrl-web/src/routes/+page.svelte b/codectrl-web/src/routes/+page.svelte
deleted file mode 100644
index 70a1274..0000000
--- a/codectrl-web/src/routes/+page.svelte
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-Hello {$user?.name} (@{$user?.username})!
-
-
diff --git a/codectrl-web/src/routes/app/(app)/App.elm b/codectrl-web/src/routes/app/(app)/App.elm
deleted file mode 100644
index 8e17b78..0000000
--- a/codectrl-web/src/routes/app/(app)/App.elm
+++ /dev/null
@@ -1,21 +0,0 @@
-module App exposing (..)
-
-import Html exposing (..)
-import Html.Attributes exposing (class)
-import Html.Events exposing (onClick)
-
-
-view : msg -> Html msg
-view command =
- div []
- [ text "Hello"
- , button
- [ onClick command
- , class "bg-authenturaRed"
- , class "dark:bg-backgroundDark"
- , class "text-primaryDark"
- , class "rounded"
- , class "p-4"
- ]
- [ text "Say Hello!" ]
- ]
diff --git a/codectrl-web/src/routes/app/(app)/Main.elm b/codectrl-web/src/routes/app/(app)/Main.elm
deleted file mode 100644
index 5dcb54d..0000000
--- a/codectrl-web/src/routes/app/(app)/Main.elm
+++ /dev/null
@@ -1,54 +0,0 @@
-port module Main exposing (..)
-
-import App
-import Browser
-import Html exposing (Html, div)
-
-
-main : Program () Model Msg
-main =
- Browser.element
- { init = init
- , view = view
- , update = update
- , subscriptions = subscriptions
- }
-
-
-type alias Model =
- {}
-
-
-init : () -> ( Model, Cmd Msg )
-init _ =
- ( {}, Cmd.none )
-
-
-type Msg
- = NoOp
- | SayHello
-
-
-update : Msg -> Model -> ( Model, Cmd Msg )
-update msg model =
- case msg of
- NoOp ->
- ( model, Cmd.none )
-
- SayHello ->
- ( model, sayHello () )
-
-
-subscriptions : Model -> Sub Msg
-subscriptions _ =
- Sub.none
-
-
-view : Model -> Html Msg
-view _ =
- div []
- [ App.view SayHello
- ]
-
-
-port sayHello : () -> Cmd msg
diff --git a/codectrl-web/src/routes/app/+page.svelte b/codectrl-web/src/routes/app/+page.svelte
deleted file mode 100644
index ffb4618..0000000
--- a/codectrl-web/src/routes/app/+page.svelte
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
diff --git a/codectrl-web/src/routes/auth/callback/[provider]/+server.ts b/codectrl-web/src/routes/auth/callback/[provider]/+server.ts
deleted file mode 100644
index cb4d58c..0000000
--- a/codectrl-web/src/routes/auth/callback/[provider]/+server.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { auth, githubAuth } from '$lib/server/lucia';
-import { USER_ID } from '$lib/server/stores/user';
-import { error, redirect } from '@sveltejs/kit';
-import { LuciaError } from 'lucia-auth';
-import type { RequestHandler } from './$types';
-
-export const GET = (async ({ url, cookies, params: { provider } }) => {
- const code = url.searchParams.get('code');
-
- if (!code) throw error(400, 'Bad request');
-
- let providerAuth;
-
- switch (provider) {
- case 'github':
- providerAuth = githubAuth;
- break;
- default:
- throw error(404, 'Provider not found');
- }
-
- try {
- const response = await providerAuth.validateCallback(code);
-
- let id: string = '';
- const unsubscribe = USER_ID.subscribe((v) => (id = v));
-
- if (!id || id === '') {
- let { id: userId } = await auth.createUser({
- primaryKey: {
- providerId: provider,
- providerUserId: response.providerUserId,
- password: null
- },
- attributes: {
- username: response.providerUser.login,
- name: response.providerUser.name,
- email: response.providerUser.email,
- profile_picture: response.providerUser.avatar_url
- }
- });
- USER_ID.set(userId);
- }
-
- const session = await auth.createSession(id);
- const sessionCookies = auth.createSessionCookies(session);
-
- for (let cookie of sessionCookies) {
- cookies.set(cookie.name, cookie.value, { path: '/' });
- }
-
- unsubscribe();
- } catch (e) {
- if (e instanceof LuciaError) throw error(500, e.message);
- }
-
- throw redirect(307, '/');
-}) satisfies RequestHandler;
diff --git a/codectrl-web/static/favicon.png b/codectrl-web/static/favicon.png
deleted file mode 100644
index 825b9e6..0000000
Binary files a/codectrl-web/static/favicon.png and /dev/null differ
diff --git a/codectrl-web/svelte.config.js b/codectrl-web/svelte.config.js
deleted file mode 100644
index d2f623e..0000000
--- a/codectrl-web/svelte.config.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import adapter from '@sveltejs/adapter-auto';
-import sveltePreprocess from 'svelte-preprocess';
-
-/** @type {import('@sveltejs/kit').Config} */
-const config = {
- // Consult https://kit.svelte.dev/docs/integrations#preprocessors
- // for more information about preprocessors
- preprocess: sveltePreprocess(),
-
- kit: {
- // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
- // If your environment is not supported or you settled on a specific environment, switch out the adapter.
- // See https://kit.svelte.dev/docs/adapters for more information about adapters.
- adapter: adapter()
- }
-};
-
-export default config;
diff --git a/codectrl-web/tailwind.config.cjs b/codectrl-web/tailwind.config.cjs
deleted file mode 100644
index f924f6a..0000000
--- a/codectrl-web/tailwind.config.cjs
+++ /dev/null
@@ -1,26 +0,0 @@
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: ['./src/**/*.{html,js,ts,svelte,md,elm}'],
- theme: {
- extend: {
- colors: {
- primaryLight: '#1b1b1b',
- primaryDark: '#ededed',
- secondaryLight: '#414141',
- secondaryDark: '#bbbbbb',
- authenturaRed: '#c7235d',
- backgroundLight: '#ffffff',
- backgroundDark: '#11191f'
- },
- fontFamily: {
- body: ['Red Hat Display', 'sans-serif']
- }
- }
- },
- variants: {
- extend: {
- backgroundOpacity: ['active']
- }
- },
- plugins: []
-};
diff --git a/codectrl-web/tsconfig.json b/codectrl-web/tsconfig.json
deleted file mode 100644
index 6ae0c8c..0000000
--- a/codectrl-web/tsconfig.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "extends": "./.svelte-kit/tsconfig.json",
- "compilerOptions": {
- "allowJs": true,
- "checkJs": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "sourceMap": true,
- "strict": true
- }
- // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
- //
- // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
- // from the referenced tsconfig.json - TypeScript does not merge them in
-}
diff --git a/codectrl-web/vite.config.ts b/codectrl-web/vite.config.ts
deleted file mode 100644
index 0d4b17f..0000000
--- a/codectrl-web/vite.config.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { sveltekit } from '@sveltejs/kit/vite';
-import { defineConfig } from 'vite';
-import { plugin as elm } from 'vite-plugin-elm';
-
-export default defineConfig({
- plugins: [sveltekit(), elm()]
-});
diff --git a/rust-toolchain.toml b/rust-toolchain.toml
index cae6e61..69a7273 100644
--- a/rust-toolchain.toml
+++ b/rust-toolchain.toml
@@ -1,2 +1,2 @@
[toolchain]
-channel = "nightly-2022-11-05"
+channel = "nightly-2023-03-13"