diff --git a/lang/Cargo.lock b/lang/Cargo.lock index c1f6dfe..3928001 100644 --- a/lang/Cargo.lock +++ b/lang/Cargo.lock @@ -80,18 +80,6 @@ version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - [[package]] name = "async-trait" version = "0.1.80" @@ -100,7 +88,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn", ] [[package]] @@ -422,7 +410,7 @@ dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", "http 0.2.12", - "rustc_version 0.4.0", + "rustc_version", "tracing", ] @@ -457,24 +445,12 @@ dependencies = [ "vsimd", ] -[[package]] -name = "bit_field" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" - [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - [[package]] name = "block-buffer" version = "0.10.4" @@ -484,18 +460,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "bytemuck" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.6.0" @@ -524,33 +488,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - -[[package]] -name = "charming" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c6b6990238a64b4ae139e7085ce2a11815cb67a0c066a3333ce40f3a329be3" -dependencies = [ - "deno_core", - "handlebars", - "image", - "resvg", - "serde", - "serde_json", - "serde_v8", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - [[package]] name = "colorchoice" version = "1.0.0" @@ -569,12 +506,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - [[package]] name = "core-foundation" version = "0.9.4" @@ -600,15 +531,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc32fast" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" -dependencies = [ - "cfg-if", -] - [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -634,12 +556,6 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-common" version = "0.1.6" @@ -650,87 +566,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctrlc" -version = "3.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345" -dependencies = [ - "nix", - "windows-sys 0.52.0", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "data-url" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" - -[[package]] -name = "debugid" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" -dependencies = [ - "serde", - "uuid", -] - -[[package]] -name = "deno_core" -version = "0.232.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229ffd108e028b148a1a5a6122f771bc7c37094170226f44b8b93b3a9b79d114" -dependencies = [ - "anyhow", - "bytes", - "deno_ops", - "deno_unsync", - "futures", - "libc", - "log", - "parking_lot", - "pin-project", - "serde", - "serde_json", - "serde_v8", - "smallvec", - "sourcemap", - "tokio", - "url", - "v8", -] - -[[package]] -name = "deno_ops" -version = "0.108.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7dde627916f8539f3f0d2e754dda40810c8ca4d655f2eaac1ef54785a12fd27" -dependencies = [ - "proc-macro-rules", - "proc-macro2", - "quote", - "strum 0.25.0", - "strum_macros 0.25.3", - "syn 2.0.51", - "thiserror", -] - -[[package]] -name = "deno_unsync" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d79c7af81e0a5ac75cff7b2fff4d1896e2bff694c688258edf21ef8a519736" -dependencies = [ - "tokio", -] - [[package]] name = "deranged" version = "0.3.11" @@ -740,19 +575,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 1.0.109", -] - [[package]] name = "digest" version = "0.10.7" @@ -805,101 +627,18 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "exr" -version = "1.72.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" -dependencies = [ - "bit_field", - "flume", - "half", - "lebe", - "miniz_oxide", - "rayon-core", - "smallvec", - "zune-inflate", -] - [[package]] name = "fastrand" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" -[[package]] -name = "fdeflate" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "flate2" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" - -[[package]] -name = "flume" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" -dependencies = [ - "spin", -] - [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "fontconfig-parser" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d" -dependencies = [ - "roxmltree 0.19.0", -] - -[[package]] -name = "fontdb" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38" -dependencies = [ - "fontconfig-parser", - "log", - "memmap2", - "slotmap", - "tinyvec", - "ttf-parser", -] - [[package]] name = "form_urlencoded" version = "1.2.1" @@ -909,16 +648,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fslock" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57eafdd0c16f57161105ae1b98a1238f97645f2f588438b2949c99a2af9616bf" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "futures" version = "0.3.30" @@ -975,7 +704,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn", ] [[package]] @@ -1029,26 +758,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "gif" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" -dependencies = [ - "color_quant", - "weezl", -] - -[[package]] -name = "gif" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" -dependencies = [ - "color_quant", - "weezl", -] - [[package]] name = "gimli" version = "0.28.1" @@ -1074,30 +783,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "half" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" -dependencies = [ - "cfg-if", - "crunchy", -] - -[[package]] -name = "handlebars" -version = "4.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" -dependencies = [ - "log", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror", -] - [[package]] name = "hashbrown" version = "0.14.3" @@ -1131,15 +816,6 @@ dependencies = [ "digest", ] -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "http" version = "0.2.12" @@ -1231,46 +907,6 @@ dependencies = [ "tokio-rustls", ] -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "if_chain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" - -[[package]] -name = "image" -version = "0.24.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "exr", - "gif 0.13.1", - "jpeg-decoder", - "num-traits", - "png", - "qoi", - "tiff", -] - -[[package]] -name = "imagesize" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" - [[package]] name = "indexmap" version = "2.2.5" @@ -1300,36 +936,12 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" -[[package]] -name = "jpeg-decoder" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" -dependencies = [ - "rayon", -] - -[[package]] -name = "kurbo" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" -dependencies = [ - "arrayvec", -] - [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "lebe" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" - [[package]] name = "libc" version = "0.2.153" @@ -1342,22 +954,6 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - [[package]] name = "log" version = "0.4.21" @@ -1370,15 +966,6 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" -[[package]] -name = "memmap2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed" -dependencies = [ - "libc", -] - [[package]] name = "miniz_oxide" version = "0.7.2" @@ -1386,7 +973,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", - "simd-adler32", ] [[package]] @@ -1400,30 +986,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "nix" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" -dependencies = [ - "bitflags 2.5.0", - "cfg-if", - "cfg_aliases", - "libc", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", - "rand", -] - [[package]] name = "num-conv" version = "0.1.0" @@ -1555,7 +1117,7 @@ dependencies = [ "log", "nv-unit-testing", "serde", - "strum 0.26.1", + "strum", "unicode-segmentation", ] @@ -1590,34 +1152,11 @@ dependencies = [ "nv-provider-core", ] -[[package]] -name = "nv-provider-aws-secrets-manager-server" -version = "0.1.0" - [[package]] name = "nv-provider-core" version = "0.1.0" dependencies = [ "async-trait", - "bytes", - "ctrlc", - "env_logger", - "insta", - "log", - "tokio", - "tokio-util", -] - -[[package]] -name = "nv-provider-core-load-testing" -version = "0.1.0" -dependencies = [ - "charming", - "env_logger", - "futures", - "log", - "nv-provider-core", - "tokio", ] [[package]] @@ -1629,18 +1168,6 @@ dependencies = [ "nv-provider-core", ] -[[package]] -name = "nv-provider-env-server" -version = "0.1.0" -dependencies = [ - "async-trait", - "env_logger", - "log", - "nv-provider-core", - "nv-provider-env", - "tokio", -] - [[package]] name = "nv-provider-resolver" version = "0.1.0" @@ -1668,7 +1195,6 @@ dependencies = [ "futures", "log", "nv-parser", - "nv-provider-core", "nv-provider-resolver", ] @@ -1709,106 +1235,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" -[[package]] -name = "parking_lot" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.3", -] - [[package]] name = "percent-encoding" version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "pest" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "pest_meta" -version = "2.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" -dependencies = [ - "once_cell", - "pest", - "sha2", -] - -[[package]] -name = "pico-args" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - [[package]] name = "pin-project-lite" version = "0.2.13" @@ -1821,48 +1253,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "png" -version = "0.17.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - [[package]] name = "powerfmt" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" -[[package]] -name = "proc-macro-rules" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" -dependencies = [ - "proc-macro-rules-macros", - "proc-macro2", - "syn 2.0.51", -] - -[[package]] -name = "proc-macro-rules-macros" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "207fffb0fe655d1d47f6af98cc2793405e85929bdbc420d685554ff07be27ac7" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.51", -] - [[package]] name = "proc-macro2" version = "1.0.78" @@ -1872,15 +1268,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "qoi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" -dependencies = [ - "bytemuck", -] - [[package]] name = "quote" version = "1.0.35" @@ -1890,21 +1277,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" - [[package]] name = "rayon" version = "1.10.0" @@ -1925,21 +1297,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "rctree" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" - -[[package]] -name = "redox_syscall" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" -dependencies = [ - "bitflags 2.5.0", -] - [[package]] name = "regex" version = "1.10.3" @@ -1975,32 +1332,6 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" -[[package]] -name = "resvg" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7980f653f9a7db31acff916a262c3b78c562919263edea29bf41a056e20497" -dependencies = [ - "gif 0.12.0", - "jpeg-decoder", - "log", - "pico-args", - "png", - "rgb", - "svgtypes", - "tiny-skia", - "usvg", -] - -[[package]] -name = "rgb" -version = "0.8.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" -dependencies = [ - "bytemuck", -] - [[package]] name = "ring" version = "0.17.8" @@ -2016,56 +1347,19 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "roxmltree" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302" -dependencies = [ - "xmlparser", -] - -[[package]] -name = "roxmltree" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f" - [[package]] name = "rustc-demangle" version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - [[package]] name = "rustc_version" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.22", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "semver", ] [[package]] @@ -2117,22 +1411,6 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" -[[package]] -name = "rustybuzz" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71cd15fef9112a1f94ac64b58d1e4628192631ad6af4dc69997f995459c874e7" -dependencies = [ - "bitflags 1.3.2", - "bytemuck", - "smallvec", - "ttf-parser", - "unicode-bidi-mirroring", - "unicode-ccc", - "unicode-properties", - "unicode-script", -] - [[package]] name = "ryu" version = "1.0.17" @@ -2148,12 +1426,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - [[package]] name = "sct" version = "0.7.1" @@ -2170,7 +1442,7 @@ version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -2187,27 +1459,12 @@ dependencies = [ "libc", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - [[package]] name = "serde" version = "1.0.199" @@ -2225,7 +1482,7 @@ checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn", ] [[package]] @@ -2234,27 +1491,11 @@ version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ - "indexmap", "itoa", "ryu", "serde", ] -[[package]] -name = "serde_v8" -version = "0.141.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc689cb316d67b200e9f7449ce76cceb7e483e0f828d1a9c3d057c4367b6c26e" -dependencies = [ - "bytes", - "derive_more", - "num-bigint", - "serde", - "smallvec", - "thiserror", - "v8", -] - [[package]] name = "sha2" version = "0.10.8" @@ -2275,33 +1516,12 @@ dependencies = [ "libc", ] -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - [[package]] name = "similar" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" -[[package]] -name = "simplecss" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" -dependencies = [ - "log", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "slab" version = "0.4.9" @@ -2311,21 +1531,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "slotmap" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - [[package]] name = "socket2" version = "0.5.6" @@ -2336,48 +1541,11 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "sourcemap" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10da010a590ed2fa9ca8467b00ce7e9c5a8017742c0c09c45450efc172208c4b" -dependencies = [ - "data-encoding", - "debugid", - "if_chain", - "rustc_version 0.2.3", - "serde", - "serde_json", - "unicode-id", - "url", -] - [[package]] name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" -dependencies = [ - "float-cmp", -] - -[[package]] -name = "strum" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" -dependencies = [ - "strum_macros 0.25.3", -] [[package]] name = "strum" @@ -2385,20 +1553,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" dependencies = [ - "strum_macros 0.26.1", -] - -[[package]] -name = "strum_macros" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.51", + "strum_macros", ] [[package]] @@ -2411,7 +1566,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.51", + "syn", ] [[package]] @@ -2420,27 +1575,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" -[[package]] -name = "svgtypes" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71499ff2d42f59d26edb21369a308ede691421f79ebc0f001e2b1fd3a7c9e52" -dependencies = [ - "kurbo", - "siphasher", -] - -[[package]] -name = "syn" -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.51" @@ -2452,37 +1586,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "thiserror" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "tiff" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" -dependencies = [ - "flate2", - "jpeg-decoder", - "weezl", -] - [[package]] name = "time" version = "0.3.36" @@ -2513,47 +1616,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "tiny-skia" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "log", - "png", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "tokio" version = "1.38.0" @@ -2565,7 +1627,6 @@ dependencies = [ "libc", "mio", "num_cpus", - "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -2581,7 +1642,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn", ] [[package]] @@ -2632,7 +1693,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn", ] [[package]] @@ -2650,172 +1711,36 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "ttf-parser" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1" - [[package]] name = "typenum" version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-bidi-mirroring" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" - -[[package]] -name = "unicode-ccc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" - -[[package]] -name = "unicode-id" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f" - [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" - -[[package]] -name = "unicode-script" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd" - [[package]] name = "unicode-segmentation" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" -[[package]] -name = "unicode-vo" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" - [[package]] name = "untrusted" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - [[package]] name = "urlencoding" version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" -[[package]] -name = "usvg" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51daa774fe9ee5efcf7b4fec13019b8119cda764d9a8b5b06df02bb1445c656" -dependencies = [ - "base64", - "log", - "pico-args", - "usvg-parser", - "usvg-text-layout", - "usvg-tree", - "xmlwriter", -] - -[[package]] -name = "usvg-parser" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c88a5ffaa338f0e978ecf3d4e00d8f9f493e29bed0752e1a808a1db16afc40" -dependencies = [ - "data-url", - "flate2", - "imagesize", - "kurbo", - "log", - "roxmltree 0.18.1", - "simplecss", - "siphasher", - "svgtypes", - "usvg-tree", -] - -[[package]] -name = "usvg-text-layout" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d2374378cb7a3fb8f33894e0fdb8625e1bbc4f25312db8d91f862130b541593" -dependencies = [ - "fontdb", - "kurbo", - "log", - "rustybuzz", - "unicode-bidi", - "unicode-script", - "unicode-vo", - "usvg-tree", -] - -[[package]] -name = "usvg-tree" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cacb0c5edeaf3e80e5afcf5b0d4004cc1d36318befc9a7c6606507e5d0f4062" -dependencies = [ - "rctree", - "strict-num", - "svgtypes", - "tiny-skia-path", -] - [[package]] name = "utf8parse" version = "0.2.1" @@ -2828,18 +1753,6 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" -[[package]] -name = "v8" -version = "0.81.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75f5f378b9b54aff3b10da8170d26af4cfd217f644cf671badcd13af5db4beb" -dependencies = [ - "bitflags 1.3.2", - "fslock", - "once_cell", - "which", -] - [[package]] name = "version_check" version = "0.9.4" @@ -2867,46 +1780,6 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "weezl" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-sys" version = "0.48.0" @@ -3045,23 +1918,8 @@ version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" -[[package]] -name = "xmlwriter" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" - [[package]] name = "zeroize" version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" - -[[package]] -name = "zune-inflate" -version = "0.2.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" -dependencies = [ - "simd-adler32", -] diff --git a/lang/Cargo.toml b/lang/Cargo.toml index c4a2db6..b717f1a 100644 --- a/lang/Cargo.toml +++ b/lang/Cargo.toml @@ -2,33 +2,25 @@ resolver = "2" members = [ - "packages/parser", - "packages/parser/__examples", + "packages/parser/lib", + "packages/parser/examples", + "packages/lexer/lib", + "packages/lexer/examples", - "packages/lexer", - "packages/lexer/__examples", + "packages/resolvers/var/lib", + "packages/resolvers/var/examples", + "packages/resolvers/provider/lib", - "packages/resolvers/var", - "packages/resolvers/provider", - "packages/resolvers/__examples/var", + "packages/code-generation/javascript/lib", + "packages/code-generation/javascript/examples", - "packages/position_indexer", + "packages/providers/env/lib", + "packages/providers/env/examples", + "packages/providers/aws-secrets-manager/lib", + "packages/providers/aws-secrets-manager/examples", "packages/language-server", - - "packages/code-generation/javascript", - "packages/code-generation/__examples/javascript", - - "packages/providers/core/lib", - "packages/providers/core/load-testing", - - "packages/providers/providers/env/lib", - "packages/providers/providers/env/server", - "packages/providers/providers/env/__examples", - - "packages/providers/providers/aws-secrets-manager/lib", - "packages/providers/providers/aws-secrets-manager/server", - "packages/providers/providers/aws-secrets-manager/__examples", + "packages/position_indexer", "testing/nvx-parsing", "testing/unit", diff --git a/lang/packages/code-generation/__examples/javascript/Cargo.toml b/lang/packages/code-generation/__examples/javascript/Cargo.toml deleted file mode 100644 index 9b84ba9..0000000 --- a/lang/packages/code-generation/__examples/javascript/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "nv-examples-codegen-javascript" -version = "0.1.0" -edition = "2021" - -[dependencies] -env_logger = "0.11.2" -log = "0.4.20" -nv-codegen-javascript = { path = "../../javascript/" } -nv-parser = { path = "../../../parser" } -nv-lexer = { path = "../../../lexer" } diff --git a/lang/packages/code-generation/javascript/examples/Cargo.toml b/lang/packages/code-generation/javascript/examples/Cargo.toml new file mode 100644 index 0000000..002cecb --- /dev/null +++ b/lang/packages/code-generation/javascript/examples/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "nv-examples-codegen-javascript" +version = "0.1.0" +edition = "2021" + +[dependencies] +env_logger = "0.11.2" +log = "0.4.20" +nv-codegen-javascript = { path = "../../javascript/lib" } +nv-parser = { path = "../../../parser/lib" } +nv-lexer = { path = "../../../lexer/lib" } diff --git a/lang/packages/code-generation/__examples/javascript/src/main.rs b/lang/packages/code-generation/javascript/examples/src/main.rs similarity index 100% rename from lang/packages/code-generation/__examples/javascript/src/main.rs rename to lang/packages/code-generation/javascript/examples/src/main.rs diff --git a/lang/packages/code-generation/javascript/Cargo.toml b/lang/packages/code-generation/javascript/lib/Cargo.toml similarity index 66% rename from lang/packages/code-generation/javascript/Cargo.toml rename to lang/packages/code-generation/javascript/lib/Cargo.toml index a306678..165f25f 100644 --- a/lang/packages/code-generation/javascript/Cargo.toml +++ b/lang/packages/code-generation/javascript/lib/Cargo.toml @@ -4,4 +4,5 @@ version = "0.1.0" edition = "2021" [dependencies] -nv-parser = { path = "../../parser" } \ No newline at end of file +nv-parser = { path = "../../../parser/lib" } + diff --git a/lang/packages/code-generation/javascript/src/lib.rs b/lang/packages/code-generation/javascript/lib/src/lib.rs similarity index 100% rename from lang/packages/code-generation/javascript/src/lib.rs rename to lang/packages/code-generation/javascript/lib/src/lib.rs diff --git a/lang/packages/language-server/Cargo.toml b/lang/packages/language-server/Cargo.toml index 96824aa..09a5e6a 100644 --- a/lang/packages/language-server/Cargo.toml +++ b/lang/packages/language-server/Cargo.toml @@ -15,7 +15,7 @@ tokio = { version = "1.38.0", features = [ "macros", "net", ] } -nv-parser = { path = "../parser" } -nv-lexer = { path = "../lexer" } +nv-parser = { path = "../parser/lib" } +nv-lexer = { path = "../lexer/lib" } nv-position-indexer = { path = "../position_indexer" } -nv-var-resolver = { path = "../resolvers/var" } +nv-var-resolver = { path = "../resolvers/var/lib" } diff --git a/lang/packages/lexer/__examples/Cargo.toml b/lang/packages/lexer/examples/Cargo.toml similarity index 80% rename from lang/packages/lexer/__examples/Cargo.toml rename to lang/packages/lexer/examples/Cargo.toml index b99343e..3549665 100644 --- a/lang/packages/lexer/__examples/Cargo.toml +++ b/lang/packages/lexer/examples/Cargo.toml @@ -6,4 +6,4 @@ edition = "2021" [dependencies] env_logger = "0.11.2" log = "0.4.20" -nv-lexer = { path = "../" } +nv-lexer = { path = "../lib" } diff --git a/lang/packages/lexer/__examples/src/main.rs b/lang/packages/lexer/examples/src/main.rs similarity index 100% rename from lang/packages/lexer/__examples/src/main.rs rename to lang/packages/lexer/examples/src/main.rs diff --git a/lang/packages/lexer/Cargo.toml b/lang/packages/lexer/lib/Cargo.toml similarity index 86% rename from lang/packages/lexer/Cargo.toml rename to lang/packages/lexer/lib/Cargo.toml index 67b4bb5..bab73bc 100644 --- a/lang/packages/lexer/Cargo.toml +++ b/lang/packages/lexer/lib/Cargo.toml @@ -12,4 +12,4 @@ unicode-segmentation = "1.11.0" [dev-dependencies] insta = { version = "1.38.0", features = ["yaml"] } -nv-unit-testing = { path = "../../testing/unit" } +nv-unit-testing = { path = "../../../testing/unit" } diff --git a/lang/packages/lexer/src/buffers/identifiers.rs b/lang/packages/lexer/lib/src/buffers/identifiers.rs similarity index 100% rename from lang/packages/lexer/src/buffers/identifiers.rs rename to lang/packages/lexer/lib/src/buffers/identifiers.rs diff --git a/lang/packages/lexer/src/buffers/mod.rs b/lang/packages/lexer/lib/src/buffers/mod.rs similarity index 100% rename from lang/packages/lexer/src/buffers/mod.rs rename to lang/packages/lexer/lib/src/buffers/mod.rs diff --git a/lang/packages/lexer/src/chars.rs b/lang/packages/lexer/lib/src/chars.rs similarity index 100% rename from lang/packages/lexer/src/chars.rs rename to lang/packages/lexer/lib/src/chars.rs diff --git a/lang/packages/lexer/src/lexer.rs b/lang/packages/lexer/lib/src/lexer.rs similarity index 100% rename from lang/packages/lexer/src/lexer.rs rename to lang/packages/lexer/lib/src/lexer.rs diff --git a/lang/packages/lexer/src/lexers/attribute_block_lexer.rs b/lang/packages/lexer/lib/src/lexers/attribute_block_lexer.rs similarity index 100% rename from lang/packages/lexer/src/lexers/attribute_block_lexer.rs rename to lang/packages/lexer/lib/src/lexers/attribute_block_lexer.rs diff --git a/lang/packages/lexer/src/lexers/mod.rs b/lang/packages/lexer/lib/src/lexers/mod.rs similarity index 100% rename from lang/packages/lexer/src/lexers/mod.rs rename to lang/packages/lexer/lib/src/lexers/mod.rs diff --git a/lang/packages/lexer/src/lexers/module_declaration_lexer.rs b/lang/packages/lexer/lib/src/lexers/module_declaration_lexer.rs similarity index 100% rename from lang/packages/lexer/src/lexers/module_declaration_lexer.rs rename to lang/packages/lexer/lib/src/lexers/module_declaration_lexer.rs diff --git a/lang/packages/lexer/src/lexers/provider_declaration_lexer.rs b/lang/packages/lexer/lib/src/lexers/provider_declaration_lexer.rs similarity index 100% rename from lang/packages/lexer/src/lexers/provider_declaration_lexer.rs rename to lang/packages/lexer/lib/src/lexers/provider_declaration_lexer.rs diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_attribute_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_attribute_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_attribute_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_attribute_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_builtin_attribute_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_builtin_attribute_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_builtin_attribute_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_builtin_attribute_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_float_attribute_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_float_attribute_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_float_attribute_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_float_attribute_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_incomplete_attribute_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_incomplete_attribute_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_incomplete_attribute_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_incomplete_attribute_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_inline_attribute_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_inline_attribute_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_inline_attribute_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__attribute_block_lexer__tests__lexes_inline_attribute_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens_with_vars.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens_with_vars.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens_with_vars.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__module_declaration_lexer__tests__lexes_module_tokens_with_vars.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__provider_declaration_lexer__tests__lexes_provider_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__provider_declaration_lexer__tests__lexes_provider_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__provider_declaration_lexer__tests__lexes_provider_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__provider_declaration_lexer__tests__lexes_provider_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_module.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_module.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_module.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_module.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_provider.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_provider.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_provider.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_provider.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_pub_var.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_pub_var.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_pub_var.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_pub_var.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_var_attributes.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_var_attributes.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_var_attributes.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__source_file_lexer__tests__lexes_source_file_tokens_with_var_attributes.snap diff --git a/lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__var_declaration_lexer__tests__lexes_var_tokens.snap b/lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__var_declaration_lexer__tests__lexes_var_tokens.snap similarity index 100% rename from lang/packages/lexer/src/lexers/snapshots/nv_lexer__lexers__var_declaration_lexer__tests__lexes_var_tokens.snap rename to lang/packages/lexer/lib/src/lexers/snapshots/nv_lexer__lexers__var_declaration_lexer__tests__lexes_var_tokens.snap diff --git a/lang/packages/lexer/src/lexers/source_file_lexer.rs b/lang/packages/lexer/lib/src/lexers/source_file_lexer.rs similarity index 100% rename from lang/packages/lexer/src/lexers/source_file_lexer.rs rename to lang/packages/lexer/lib/src/lexers/source_file_lexer.rs diff --git a/lang/packages/lexer/src/lexers/utils.rs b/lang/packages/lexer/lib/src/lexers/utils.rs similarity index 100% rename from lang/packages/lexer/src/lexers/utils.rs rename to lang/packages/lexer/lib/src/lexers/utils.rs diff --git a/lang/packages/lexer/src/lexers/var_declaration_lexer.rs b/lang/packages/lexer/lib/src/lexers/var_declaration_lexer.rs similarity index 100% rename from lang/packages/lexer/src/lexers/var_declaration_lexer.rs rename to lang/packages/lexer/lib/src/lexers/var_declaration_lexer.rs diff --git a/lang/packages/lexer/src/lib.rs b/lang/packages/lexer/lib/src/lib.rs similarity index 100% rename from lang/packages/lexer/src/lib.rs rename to lang/packages/lexer/lib/src/lib.rs diff --git a/lang/packages/lexer/src/tokens.rs b/lang/packages/lexer/lib/src/tokens.rs similarity index 100% rename from lang/packages/lexer/src/tokens.rs rename to lang/packages/lexer/lib/src/tokens.rs diff --git a/lang/packages/parser/__examples/Cargo.toml b/lang/packages/parser/examples/Cargo.toml similarity index 64% rename from lang/packages/parser/__examples/Cargo.toml rename to lang/packages/parser/examples/Cargo.toml index c52648e..6377185 100644 --- a/lang/packages/parser/__examples/Cargo.toml +++ b/lang/packages/parser/examples/Cargo.toml @@ -6,5 +6,5 @@ edition = "2021" [dependencies] env_logger = "0.11.2" log = "0.4.20" -nv-parser = { path = "../" } -nv-lexer = { path = "../../lexer/" } +nv-parser = { path = "../lib" } +nv-lexer = { path = "../../lexer/lib" } diff --git a/lang/packages/parser/__examples/src/main.rs b/lang/packages/parser/examples/src/main.rs similarity index 100% rename from lang/packages/parser/__examples/src/main.rs rename to lang/packages/parser/examples/src/main.rs diff --git a/lang/packages/parser/Cargo.toml b/lang/packages/parser/lib/Cargo.toml similarity index 72% rename from lang/packages/parser/Cargo.toml rename to lang/packages/parser/lib/Cargo.toml index 9fe5c21..e8c89c2 100644 --- a/lang/packages/parser/Cargo.toml +++ b/lang/packages/parser/lib/Cargo.toml @@ -6,9 +6,9 @@ edition = "2021" [dependencies] env_logger = "0.11.2" log = "0.4.20" -nv-lexer = { path = "../lexer" } +nv-lexer = { path = "../../lexer/lib" } serde = { version = "1.0.199", features = ["derive", "rc"] } [dev-dependencies] insta = { version = "1.38.0", features = ["yaml"] } -nv-unit-testing = { path = "../../testing/unit" } +nv-unit-testing = { path = "../../../testing/unit" } diff --git a/lang/packages/parser/src/abstract_syntax_tree.rs b/lang/packages/parser/lib/src/abstract_syntax_tree.rs similarity index 100% rename from lang/packages/parser/src/abstract_syntax_tree.rs rename to lang/packages/parser/lib/src/abstract_syntax_tree.rs diff --git a/lang/packages/parser/src/attributes.rs b/lang/packages/parser/lib/src/attributes.rs similarity index 100% rename from lang/packages/parser/src/attributes.rs rename to lang/packages/parser/lib/src/attributes.rs diff --git a/lang/packages/parser/src/lib.rs b/lang/packages/parser/lib/src/lib.rs similarity index 100% rename from lang/packages/parser/src/lib.rs rename to lang/packages/parser/lib/src/lib.rs diff --git a/lang/packages/parser/src/modules.rs b/lang/packages/parser/lib/src/modules.rs similarity index 100% rename from lang/packages/parser/src/modules.rs rename to lang/packages/parser/lib/src/modules.rs diff --git a/lang/packages/parser/src/parser.rs b/lang/packages/parser/lib/src/parser.rs similarity index 100% rename from lang/packages/parser/src/parser.rs rename to lang/packages/parser/lib/src/parser.rs diff --git a/lang/packages/parser/src/parsers/attribute_block_parser.rs b/lang/packages/parser/lib/src/parsers/attribute_block_parser.rs similarity index 100% rename from lang/packages/parser/src/parsers/attribute_block_parser.rs rename to lang/packages/parser/lib/src/parsers/attribute_block_parser.rs diff --git a/lang/packages/parser/src/parsers/mod.rs b/lang/packages/parser/lib/src/parsers/mod.rs similarity index 100% rename from lang/packages/parser/src/parsers/mod.rs rename to lang/packages/parser/lib/src/parsers/mod.rs diff --git a/lang/packages/parser/src/parsers/module_declaration_parser.rs b/lang/packages/parser/lib/src/parsers/module_declaration_parser.rs similarity index 100% rename from lang/packages/parser/src/parsers/module_declaration_parser.rs rename to lang/packages/parser/lib/src/parsers/module_declaration_parser.rs diff --git a/lang/packages/parser/src/parsers/provider_declaration_parser.rs b/lang/packages/parser/lib/src/parsers/provider_declaration_parser.rs similarity index 100% rename from lang/packages/parser/src/parsers/provider_declaration_parser.rs rename to lang/packages/parser/lib/src/parsers/provider_declaration_parser.rs diff --git a/lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__module_declaration_parser__tests__parses_module_nodes.snap b/lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__module_declaration_parser__tests__parses_module_nodes.snap similarity index 100% rename from lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__module_declaration_parser__tests__parses_module_nodes.snap rename to lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__module_declaration_parser__tests__parses_module_nodes.snap diff --git a/lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__provider_declaration_parser__tests__parses_provider_nodes.snap b/lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__provider_declaration_parser__tests__parses_provider_nodes.snap similarity index 100% rename from lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__provider_declaration_parser__tests__parses_provider_nodes.snap rename to lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__provider_declaration_parser__tests__parses_provider_nodes.snap diff --git a/lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__source_file_parser__tests__parses_source_file_nodes.snap b/lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__source_file_parser__tests__parses_source_file_nodes.snap similarity index 100% rename from lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__source_file_parser__tests__parses_source_file_nodes.snap rename to lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__source_file_parser__tests__parses_source_file_nodes.snap diff --git a/lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__var_block_parser__tests__parses_var_block_nodes.snap b/lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__var_block_parser__tests__parses_var_block_nodes.snap similarity index 100% rename from lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__var_block_parser__tests__parses_var_block_nodes.snap rename to lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__var_block_parser__tests__parses_var_block_nodes.snap diff --git a/lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__var_declaration_parser__tests__parses_var_nodes.snap b/lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__var_declaration_parser__tests__parses_var_nodes.snap similarity index 100% rename from lang/packages/parser/src/parsers/snapshots/nv_parser__parsers__var_declaration_parser__tests__parses_var_nodes.snap rename to lang/packages/parser/lib/src/parsers/snapshots/nv_parser__parsers__var_declaration_parser__tests__parses_var_nodes.snap diff --git a/lang/packages/parser/src/parsers/source_file_parser.rs b/lang/packages/parser/lib/src/parsers/source_file_parser.rs similarity index 100% rename from lang/packages/parser/src/parsers/source_file_parser.rs rename to lang/packages/parser/lib/src/parsers/source_file_parser.rs diff --git a/lang/packages/parser/src/parsers/var_block_parser.rs b/lang/packages/parser/lib/src/parsers/var_block_parser.rs similarity index 100% rename from lang/packages/parser/src/parsers/var_block_parser.rs rename to lang/packages/parser/lib/src/parsers/var_block_parser.rs diff --git a/lang/packages/parser/src/parsers/var_declaration_parser.rs b/lang/packages/parser/lib/src/parsers/var_declaration_parser.rs similarity index 100% rename from lang/packages/parser/src/parsers/var_declaration_parser.rs rename to lang/packages/parser/lib/src/parsers/var_declaration_parser.rs diff --git a/lang/packages/parser/src/providers.rs b/lang/packages/parser/lib/src/providers.rs similarity index 100% rename from lang/packages/parser/src/providers.rs rename to lang/packages/parser/lib/src/providers.rs diff --git a/lang/packages/parser/src/vars.rs b/lang/packages/parser/lib/src/vars.rs similarity index 100% rename from lang/packages/parser/src/vars.rs rename to lang/packages/parser/lib/src/vars.rs diff --git a/lang/packages/position_indexer/Cargo.toml b/lang/packages/position_indexer/Cargo.toml index 348cce6..56c9a72 100644 --- a/lang/packages/position_indexer/Cargo.toml +++ b/lang/packages/position_indexer/Cargo.toml @@ -5,4 +5,5 @@ edition = "2021" [dependencies] log = "0.4.21" -nv-parser = { path = "../parser" } \ No newline at end of file +nv-parser = { path = "../parser/lib" } + diff --git a/lang/packages/providers/providers/aws-secrets-manager/__examples/Cargo.toml b/lang/packages/providers/aws-secrets-manager/examples/Cargo.toml similarity index 100% rename from lang/packages/providers/providers/aws-secrets-manager/__examples/Cargo.toml rename to lang/packages/providers/aws-secrets-manager/examples/Cargo.toml diff --git a/lang/packages/providers/providers/aws-secrets-manager/__examples/src/main.rs b/lang/packages/providers/aws-secrets-manager/examples/src/main.rs similarity index 100% rename from lang/packages/providers/providers/aws-secrets-manager/__examples/src/main.rs rename to lang/packages/providers/aws-secrets-manager/examples/src/main.rs diff --git a/lang/packages/providers/providers/aws-secrets-manager/lib/Cargo.toml b/lang/packages/providers/aws-secrets-manager/lib/Cargo.toml similarity index 83% rename from lang/packages/providers/providers/aws-secrets-manager/lib/Cargo.toml rename to lang/packages/providers/aws-secrets-manager/lib/Cargo.toml index 1022fed..41e4649 100644 --- a/lang/packages/providers/providers/aws-secrets-manager/lib/Cargo.toml +++ b/lang/packages/providers/aws-secrets-manager/lib/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [dependencies] log = "0.4.21" -nv-provider-core = { path = "../../../core/lib" } +nv-provider-core = { path = "../../core/lib" } aws-config = { version = "1.1.8", features = ["behavior-version-latest"] } aws-sdk-secretsmanager = "1.19.0" async-trait = "0.1.79" diff --git a/lang/packages/providers/providers/aws-secrets-manager/lib/src/lib.rs b/lang/packages/providers/aws-secrets-manager/lib/src/lib.rs similarity index 100% rename from lang/packages/providers/providers/aws-secrets-manager/lib/src/lib.rs rename to lang/packages/providers/aws-secrets-manager/lib/src/lib.rs diff --git a/lang/packages/providers/providers/aws-secrets-manager/lib/src/provider.rs b/lang/packages/providers/aws-secrets-manager/lib/src/provider.rs similarity index 77% rename from lang/packages/providers/providers/aws-secrets-manager/lib/src/provider.rs rename to lang/packages/providers/aws-secrets-manager/lib/src/provider.rs index c137c4c..bfd5251 100644 --- a/lang/packages/providers/providers/aws-secrets-manager/lib/src/provider.rs +++ b/lang/packages/providers/aws-secrets-manager/lib/src/provider.rs @@ -1,4 +1,4 @@ -use nv_provider_core::{Provider, ProviderError, ProviderRetrievalError}; +use nv_provider_core::{Provider, ProviderError}; #[derive(Debug)] pub struct AwsSecretsManagerProvider {} @@ -24,12 +24,10 @@ impl Provider for AwsSecretsManagerProvider { log::error!("Aws env provider error: {:?}", err); if let Ok(source) = err.into_source() { - return ProviderError::RetrievalError(ProviderRetrievalError { - message: source.source().map(|error| error.to_string()), - }); + return ProviderError::Unknown("explodey".to_owned()); } - ProviderError::ExplodeyProvider + ProviderError::Unknown("explodey".to_owned()) }) .map(|response| { let res = response.secret_string.unwrap_or_default(); diff --git a/lang/packages/providers/core/lib/Cargo.toml b/lang/packages/providers/core/lib/Cargo.toml index 40cd353..fe4301c 100644 --- a/lang/packages/providers/core/lib/Cargo.toml +++ b/lang/packages/providers/core/lib/Cargo.toml @@ -5,17 +5,3 @@ edition = "2021" [dependencies] async-trait = "0.1.80" -bytes = "1.6.0" -ctrlc = "3.4.4" -env_logger = "0.11.3" -insta = "1.39.0" -log = "0.4.21" -tokio = { version = "1.38.0", features = [ - "net", - "rt", - "sync", - "macros", - "io-util", - "time", -] } -tokio-util = "0.7.11" diff --git a/lang/packages/providers/core/lib/README.md b/lang/packages/providers/core/lib/README.md deleted file mode 100644 index 4f3850c..0000000 --- a/lang/packages/providers/core/lib/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# nv-provider-core - -## Messaging - -Messaging w/ nv provider core's streaming socket listener is defined below. -The listener maintains a full duplex connection with the client, -requests and responses may be sent/received in any order. - -### Config Collection Protocol - -The Config Collection Protocol defines the structure -of messages and behaviour of system components. - -Tagged message w/ byte order: - -```text -Message: [HEADER][PAYLOAD] - HEADER: 8 bytes - [VERSION][OPCODE][CHECKSUM][PAYLOAD_LENGTH] - VERSION: 1 byte - OPCODE: 1 byte - CHECKSUM: 2 bytes - PAYLOAD_LENGTH: 4 bytes - PAYLOAD: ... -``` - -#### Version - -Majors only. e.g. 0x01, 0x02, 0x03 - -#### Opcodes - -- INITIALIZE: 0x01 -- DESTROY: 0x02 -- GET_VALUE: 0x03 -- HEALTH: 0x03 - -#### Checksum - -16-bit ones' complement of the header and payload. -The checksum is initially set to 0 for checksum calculation. - -1. Generate a header version, opcode, 0x0 (nil checksum), payload length -1. Group by 16 bit words -1. Pad 0's to complete words -1. Binary add all words -1. Wrap overflows -1. Ones complement - -##### Error detection - -1. Decode message as bytes -1. nil the checksum -1. Group by 16 bits -1. Pad 0's to complete -1. Binary add -1. Wrap overflows -1. Add checksum -1. All 1's, else error diff --git a/lang/packages/providers/core/lib/src/errors.rs b/lang/packages/providers/core/lib/src/errors.rs deleted file mode 100644 index 81da321..0000000 --- a/lang/packages/providers/core/lib/src/errors.rs +++ /dev/null @@ -1,28 +0,0 @@ -use std::fmt::Debug; - -#[derive(Debug)] -pub enum ServerError { - Write, - Read, - NoMessages, - SocketError, - WouldBlock, -} - -#[derive(Debug)] -pub enum ServerResult { - ClientDisconnected, - CancelledGracefully, -} - -#[derive(Debug, Clone)] -pub struct ProviderRetrievalError { - pub message: Option, -} - -#[derive(Debug, Clone)] -pub enum ProviderError { - NoValueForKey, - RetrievalError(ProviderRetrievalError), - ExplodeyProvider, -} diff --git a/lang/packages/providers/core/lib/src/handler.rs b/lang/packages/providers/core/lib/src/handler.rs deleted file mode 100644 index 5226f06..0000000 --- a/lang/packages/providers/core/lib/src/handler.rs +++ /dev/null @@ -1,236 +0,0 @@ -use crate::errors::{ServerError, ServerResult}; -use crate::messages::Message; -use crate::protocol::MessageSerializer; -use crate::{Controller, ProviderError}; -use std::fmt::Debug; -use std::io::ErrorKind; -use std::sync::Arc; -use tokio::net::UnixStream; -use tokio::sync::mpsc; -use tokio::task::JoinHandle; -use tokio_util::sync::CancellationToken; - -#[derive(Debug)] -pub struct Handler { - pub stream: Arc, - pub controller: Arc, - pub serializer: MessageSerializer, -} - -impl Handler { - pub fn new(stream: Arc, controller: Arc) -> Self { - Handler { - stream, - controller, - serializer: MessageSerializer {}, - } - } - - // In parallel, we read and write from the full duplex stream when its ready for such op. - // "Actions" are also processed in their own green thread to allow for actions of varying - // durations to be processed concurrently without blocking queue I/O. - pub async fn handle(self: Arc) -> Result { - let (req_tx, req_rx) = mpsc::channel(16); - let (res_tx, res_rx) = mpsc::channel(16); - let cancel_token = CancellationToken::new(); - - let read_out = req_tx.clone(); - let read_stream = self.stream.clone(); - let read_cancel = cancel_token.clone(); - let read_thread: JoinHandle> = tokio::spawn(async move { - tokio::select! { - _ = read_cancel.cancelled() => { - Ok(ServerResult::ClientDisconnected) - } - result = async { - loop { - let ready = read_stream.readable().await; - - match ready { - Ok(_) => { - let request = Handler::read_message(read_stream.clone()).await; - - log::debug!("Read message; request = {:?}", request); - - match request { - Ok(request) if !request.is_empty() => { - let result = read_out.send(request.clone()).await; - - if let Err(e) = result { - log::error!("{:?} Failed to send out read response; err = {:?}", String::from_utf8(request), e); - break Err(ServerError::SocketError); - } - } - Ok(_) => { - // Empty message means client shutdown - break Ok(ServerResult::ClientDisconnected); - }, - Err(ServerError::WouldBlock) => { - continue; - } - Err(e) => { - log::error!("Failed to read message; err = {:?}", e); - break Err(ServerError::SocketError); - } - } - } - Err(e) => { - log::error!("Failed to read readiness; err = {:?}", e); - break Err(ServerError::SocketError); - } - } - } - } => { - result - } - } - }); - - let mut action_in = req_rx; - let action_out = res_tx.clone(); - let controller = self.controller.clone(); - let action_cancel = cancel_token.clone(); - let action_thread: JoinHandle> = tokio::spawn( - async move { - tokio::select! { - _ = action_cancel.cancelled() => { - Ok(ServerResult::CancelledGracefully) - } - result = async { - let res: Result = loop { - let message = action_in.recv().await; - if message.is_none() { - continue; - } - - let action = message.unwrap(); - - let response = controller.action(&action).await; - - let result = action_out.send(response).await; - - if result.is_err() { - log::error!("Failed to action message; action = {:?} err = {:?}", String::from_utf8(action), result); - break Err(ServerError::SocketError); - } - }; - - res - } => { - result - } - } - }, - ); - - let write_stream = self.stream.clone(); - let mut write_in = res_rx; - let action_out_recover = res_tx; - let write_cancel = cancel_token.clone(); - let handler: Arc = Arc::clone(&self); - let write_thread: JoinHandle> = tokio::spawn( - async move { - tokio::select! { - _ = write_cancel.cancelled() => { - Ok(ServerResult::CancelledGracefully) - } - result = async { - loop { - let message = write_in.recv().await; - - if message.is_none() { - continue; - } - - let message = message.unwrap(); - - - let ready = write_stream.writable().await; - - match ready { - Ok(_) => { - let result = handler.write_message(write_stream.clone(), message.clone()).await; - - match result { - Err(ServerError::WouldBlock) => { - // Re-queue received message if blocking - let _ = action_out_recover.send(message).await; - continue; - } - Err(e) => { - log::error!("Failed to write response; err = {:?}", e); - break Err(e) - } - Ok(_) => { continue; } - } - } - Err(e) => { - log::error!("Failed to read readiness on write; err = {:?}", e); - break Err(ServerError::SocketError) - } - } - } - } => { - result - } - - } - }, - ); - - tokio::select! { - result = read_thread => { - log::debug!("Read thread cancelled; result = {:?}", result); - cancel_token.cancel(); - result.unwrap_or(Err(ServerError::SocketError)) - } - result = action_thread => { - log::debug!("Action thread cancelled; result = {:?}", result); - cancel_token.cancel(); - result.unwrap_or(Err(ServerError::SocketError)) - } - result = write_thread => { - log::debug!("Write thread cancelled; result = {:?}", result); - cancel_token.cancel(); - result.unwrap_or(Err(ServerError::SocketError)) - } - } - } - - async fn read_message(stream: Arc) -> Result { - let mut message = vec![0; 1024]; - match stream.try_read(&mut message) { - Ok(bytes_read) => { - message.truncate(bytes_read); - - Ok(message) - } - Err(ref e) if e.kind() == ErrorKind::WouldBlock => Err(ServerError::WouldBlock), - Err(e) => { - log::error!("Failed to read from socket; err = {:?}", e); - Err(ServerError::Read) - } - } - } - - async fn write_message( - &self, - stream: Arc, - res: Result, - ) -> Result<(), ServerError> { - let message = res.unwrap_or("nout".as_bytes().into()); - let serialized = self - .serializer - .serialize(message) - .map_err(|_| ServerError::Write)?; - - match stream.try_write(&serialized) { - Ok(_) => Ok(()), - Err(ref e) if e.kind() == ErrorKind::WouldBlock => Err(ServerError::Write), - Err(e) => { - log::error!("Failed to write to socket; err = {:?}", e); - Err(ServerError::Write) - } - } - } -} diff --git a/lang/packages/providers/core/lib/src/lib.rs b/lang/packages/providers/core/lib/src/lib.rs index dee57af..e7d40d3 100644 --- a/lang/packages/providers/core/lib/src/lib.rs +++ b/lang/packages/providers/core/lib/src/lib.rs @@ -1,14 +1,5 @@ -mod errors; -mod handler; -mod messages; -mod protocol; mod provider; -mod server; -pub use errors::{ProviderError, ProviderRetrievalError, ServerError}; -pub use messages::Message; -pub use protocol::{MessageDeserializer, MessageStreamReader}; -pub use provider::Provider; -pub use server::{Controller, Server}; +pub use provider::{Provider, ProviderError}; pub use async_trait::async_trait; diff --git a/lang/packages/providers/core/lib/src/messages.rs b/lang/packages/providers/core/lib/src/messages.rs deleted file mode 100644 index dafeacb..0000000 --- a/lang/packages/providers/core/lib/src/messages.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub type Message = Vec; -pub type MessageSlice<'a> = &'a [u8]; diff --git a/lang/packages/providers/core/lib/src/protocol.rs b/lang/packages/providers/core/lib/src/protocol.rs deleted file mode 100644 index 68bc77f..0000000 --- a/lang/packages/providers/core/lib/src/protocol.rs +++ /dev/null @@ -1,258 +0,0 @@ -use std::sync::Arc; - -use bytes::BytesMut; -use tokio::sync::Mutex; -use tokio::{io, net::UnixStream}; - -use crate::{messages::MessageSlice, Message}; - -#[repr(u8)] -#[derive(Debug, PartialEq, Clone)] -pub enum Opcode { - Initialize = 0x1, - Destroy = 0x2, - GetValue = 0x3, - Health = 0x4, -} - -impl Opcode { - fn as_byte(&self) -> u8 { - log::debug!("Converting opcode {:?} to opcode byte", self); - let byte = self.clone() as u8; - - log::debug!( - "TEMP self:{:?} ---- getvalue:{:?} ---- static0x3:{:?} ---- byte:{:?}", - self, - Opcode::GetValue, - 0x3, - byte - ); - - byte - } - - fn from_byte(byte: u8) -> Result { - log::debug!("Converting opcode byte {} to opcode", byte); - match byte { - 0x1 => Ok(Opcode::Initialize), - 0x2 => Ok(Opcode::Destroy), - 0x3 => Ok(Opcode::GetValue), - 0x4 => Ok(Opcode::Health), - _ => Err(ProtocolError::InvalidOpcode), - } - } -} - -#[derive(Debug)] -pub struct MessageSerializer {} - -type HeaderBytes = Vec; -type Payload = Vec; - -#[derive(Debug)] -pub struct Header { - pub version: u8, - pub opcode: Opcode, - pub checksum: u16, - pub payload_length: u32, -} - -impl Header { - fn to_bytes(&self) -> HeaderBytes { - let opcode = self.opcode.as_byte(); - let mut bytes = vec![self.version, opcode]; - - let checksum_bytes = self.checksum.to_be_bytes(); - let payload_length_bytes = self.payload_length.to_be_bytes(); - - log::debug!( - "HeaderBytes to Header, found payload length {:?} from {:?}", - payload_length_bytes, - self.payload_length - ); - - bytes = bytes - .iter() - .chain(checksum_bytes.iter()) - .chain(payload_length_bytes.iter()) - .copied() - .collect(); - - bytes - } - - fn from_message(message: MessageSlice) -> Result { - let version = *message.first().ok_or(ProtocolError::InvalidHeader)?; - log::debug!("Header from message, version:{:?}", version); - - let opcode = *message.get(1).ok_or(ProtocolError::InvalidHeader)?; - log::debug!("Header from message, opcode:{:?}", opcode); - - let checksum: [u8; 2] = message - .get(2..=3) - .ok_or(ProtocolError::InvalidHeader)? - .try_into() - .or(Err(ProtocolError::InvalidHeader))?; - log::debug!("Header from message, checksum:{:?}", checksum); - - let payload_length: [u8; 4] = message - .get(4..=7) - .ok_or(ProtocolError::InvalidHeader)? - .try_into() - .or(Err(ProtocolError::InvalidHeader))?; - log::debug!("Header from message, payload_length:{:?}", payload_length); - - Ok(Header { - version, - opcode: Opcode::from_byte(opcode)?, - checksum: u16::from_be_bytes(checksum), - payload_length: u32::from_be_bytes(payload_length), - }) - } -} - -impl MessageSerializer { - pub fn serialize(&self, payload: Payload) -> Result { - log::debug!("Serializing payload {:?}", payload); - - let header = MessageSerializer::generate_header(&payload)?; - - Ok(header.iter().chain(payload.iter()).copied().collect()) - } - - fn generate_header(payload: &Payload) -> Result, ProtocolError> { - let mut header = Header { - version: 0x1, - opcode: Opcode::GetValue, - checksum: 0x0, - payload_length: payload - .len() - .try_into() - .map_err(|_| ProtocolError::InvalidPayload)?, - }; - - let header_bytes = header.to_bytes(); - - header.checksum = MessageSerializer::generate_checksum(&header_bytes, payload)?; - - Ok(header.to_bytes()) - } - - fn generate_checksum(header_bytes: &[u8], payload: &Payload) -> Result { - let mut res: u16 = 0; - - let all_bytes: Vec = header_bytes.iter().chain(payload.iter()).copied().collect(); - - for chunk in all_bytes.chunks(2) { - let pad_count = 2 - chunk.len(); - - let mut padding = vec![0; pad_count]; - padding.fill(0); - - let word: Vec<_> = chunk.iter().chain(padding.iter()).copied().collect(); - let word: [u8; 2] = word - .get(0..=1) - .ok_or(ProtocolError::UngeneratableChecksum)? - .try_into() - .or(Err(ProtocolError::UngeneratableChecksum))?; - let word = u16::from_be_bytes(word); - - res = res.wrapping_add(word); - } - - Ok(res) - } - - fn verify_checksum(message: Message) -> Result<(), ProtocolError> { - let header = message.get(0..=7).ok_or(ProtocolError::CorruptChecksum)?; - let payload = message.get(8..); - - let checksum = header.get(1..=3); - - // TODO: you must perform error detection on checksum to complete - - Ok(()) - } -} - -#[derive(Debug)] -pub enum ProtocolError { - ErrorDetected, - InvalidHeader, - InvalidPayload, - UnreadableStream, - InvalidOpcode, - UngeneratableChecksum, - CorruptChecksum, -} - -pub struct MessageDeserializer {} - -pub struct DeserializedMessage { - pub header: Header, - pub payload: Payload, -} - -impl MessageDeserializer { - pub fn deserialize(message: MessageSlice) -> Result { - log::debug!("Deserialize on message called: {:?}", message); - - let header = Header::from_message(message)?; - let max_payload_index: usize = (8 + header.payload_length) - .try_into() - .or(Err(ProtocolError::UnreadableStream))?; - - let payload = message.get(8..max_payload_index); - log::debug!("TEMP Payload check {:?}", payload); - - let payload: Vec = payload.ok_or(ProtocolError::InvalidPayload)?.to_vec(); - - log::debug!( - "Deserialize found a payload of len {}: {:?} between indexes 7..{}", - payload.len(), - payload, - max_payload_index - ); - - // TODO: message may have left over bytes from another/the next message. - // We need to handle this. - - Ok(DeserializedMessage { header, payload }) - } -} - -pub struct MessageStreamReader {} - -impl MessageStreamReader { - pub async fn read_message(stream: &Arc>) -> Result { - let mut buf = BytesMut::with_capacity(1024); - - loop { - let stream = stream.lock().await; - - let n = stream.try_read_buf(&mut buf); - - log::debug!("Read {:?}", n); - - match n { - Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => { - if buf.is_empty() { - continue; - } else { - break; - } - } - Err(_) => { - return Err(ProtocolError::UnreadableStream); - } - Ok(n) => { - if n == 0 { - break; - } - } - } - } - - Ok(buf.into()) - } -} diff --git a/lang/packages/providers/core/lib/src/provider.rs b/lang/packages/providers/core/lib/src/provider.rs index 6e4c0a0..85b6b93 100644 --- a/lang/packages/providers/core/lib/src/provider.rs +++ b/lang/packages/providers/core/lib/src/provider.rs @@ -1,6 +1,10 @@ use std::fmt::Debug; -use crate::ProviderError; +#[derive(Debug)] +pub enum ProviderError { + NotFound, + Unknown(String), +} #[async_trait::async_trait] pub trait Provider: Sync + Debug { diff --git a/lang/packages/providers/core/lib/src/server.rs b/lang/packages/providers/core/lib/src/server.rs deleted file mode 100644 index 8980f81..0000000 --- a/lang/packages/providers/core/lib/src/server.rs +++ /dev/null @@ -1,157 +0,0 @@ -use crate::errors::ServerError; -use crate::handler::Handler; -use crate::messages::Message; -use crate::ProviderError; -use async_trait::async_trait; -use std::fmt::Debug; -use std::fs::remove_file; -use std::io::ErrorKind; -use std::process::exit; -use std::sync::Arc; -use tokio::net::UnixListener; - -#[async_trait] -pub trait Controller: Sync + Send + Debug { - async fn action(&self, message: &Message) -> Result; -} - -#[derive(Debug)] -pub struct Server { - pub path: String, - pub controller: Arc, -} - -impl Server { - pub fn new(path: &str, controller: Arc) -> Self { - Self { - path: path.to_owned(), - controller, - } - } - - pub async fn start(&self) -> Result<(), ServerError> { - let path = self.path.clone(); - let clean_up = move || { - let result = remove_file(path.clone()); - - if let Err(error) = result { - if error.kind() == ErrorKind::NotFound { - return; - } - - log::error!("Error removing file: {:?}", error); - } - }; - - clean_up(); - - let listener = UnixListener::bind(self.path.clone()).unwrap(); - // TODO: move out of lib - ctrlc::set_handler(move || { - clean_up(); - exit(0); - }) - .expect("Error setting Ctrl-C handler"); - - loop { - let socket = listener.accept().await; - log::debug!("New client connected {:?}", socket); - - match socket { - Ok((stream, _addr)) => { - let controller = self.controller.clone(); - let stream = Arc::new(stream); - let handler = Arc::new(Handler::new(stream, controller)); - tokio::spawn(async move { handler.handle().await }); - } - Err(e) => { - log::error!("{:?}", e); - } - } - } - } -} - -#[cfg(test)] -mod tests { - use super::Controller; - use crate::protocol::Opcode; - use crate::{messages::Message, Server}; - use crate::{MessageDeserializer, MessageStreamReader, ProviderError}; - use async_trait::async_trait; - use insta::assert_snapshot; - use std::sync::Arc; - use std::time::Duration; - use tokio::io::AsyncWriteExt; - use tokio::net::UnixStream; - use tokio::sync::Mutex; - use tokio::time::sleep; - - #[derive(Debug)] - struct TestController {} - - #[async_trait] - impl Controller for TestController { - async fn action(&self, message: &Message) -> Result { - log::debug!("TestController received message {:?}", message); - let response = "nout".as_bytes().to_vec(); - Ok(response) - } - } - - #[tokio::test] - async fn test_server() { - env_logger::init(); - - let controller = Arc::new(TestController {}); - let path = "/tmp/nv-provider.sock"; - - let server = Server::new(path, controller); - - tokio::spawn(async move { - let _ = server.start().await; - }); - sleep(Duration::from_millis(100)).await; - - let client = Arc::new(Mutex::new(UnixStream::connect(path).await.unwrap())); - let msg = b"who"; - - let writable_client = client.clone(); - let mut writable_client = writable_client.lock().await; - writable_client.write_all(msg).await.unwrap(); - std::mem::drop(writable_client); - - log::debug!("Reading response..."); - let message = MessageStreamReader::read_message(&client).await.unwrap(); - - log::debug!("Message read: {:?}", message); - log::debug!("Length read: {:?}", message.len()); - - let deserialized = MessageDeserializer::deserialize(&message); - - match deserialized { - Ok(res) => { - log::debug!("Deserialized header {:?}", res.header); - log::debug!("Deserialized payload {:?}", res.payload); - - let header = res.header; - let payload = res.payload; - assert_eq!(header.version, 0x1); - assert_eq!(header.opcode, Opcode::GetValue); - assert_snapshot!(header.checksum); - assert_eq!(header.payload_length, 4); - assert_eq!(String::from_utf8(payload), Ok("nout".to_owned())); - - // TODO: verify checksum - } - - Err(err) => { - log::error!( - "Error deserializing message response in server test {:?}", - err - ); - panic!("Deserialize should not error"); - } - } - } -} diff --git a/lang/packages/providers/core/lib/src/snapshots/nv_provider_core__server__tests__server.snap b/lang/packages/providers/core/lib/src/snapshots/nv_provider_core__server__tests__server.snap deleted file mode 100644 index 1133348..0000000 --- a/lang/packages/providers/core/lib/src/snapshots/nv_provider_core__server__tests__server.snap +++ /dev/null @@ -1,5 +0,0 @@ ---- -source: packages/providers/core/lib/src/server.rs -expression: header.checksum ---- -58602 diff --git a/lang/packages/providers/core/load-testing/Cargo.toml b/lang/packages/providers/core/load-testing/Cargo.toml deleted file mode 100644 index 158cf90..0000000 --- a/lang/packages/providers/core/load-testing/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "nv-provider-core-load-testing" -version = "0.1.0" -edition = "2021" - -[dependencies] -charming = { version = "0.3.1", features = ["ssr"] } -env_logger = "0.11.3" -futures = "0.3.30" -log = "0.4.21" -nv-provider-core = { path = "../lib" } -tokio = { version = "1.38.0", features = ["rt", "time"] } diff --git a/lang/packages/providers/core/load-testing/src/charts.rs b/lang/packages/providers/core/load-testing/src/charts.rs deleted file mode 100644 index c450dd8..0000000 --- a/lang/packages/providers/core/load-testing/src/charts.rs +++ /dev/null @@ -1,98 +0,0 @@ -use crate::{ - load::{X_DURATION_UNIT, Y_DURATION_UNIT}, - types::Value, -}; -use charming::{ - component::{Axis, Title}, - element::{AxisType, Tooltip, Trigger}, - series::Line, - Chart, ImageRenderer, -}; -use std::fs::write; - -pub fn generate(time: &[Value], req_count: &[Value], client_count: &[Value], duration: &[Value]) { - let req_count_chart = Chart::new() - .title(Title::new().text("Load test results - Request count")) - .tooltip(Tooltip::new().trigger(Trigger::Axis)) - .x_axis( - Axis::new().type_(AxisType::Category).data( - time.iter() - .map(|t| format!("{}{}", t, X_DURATION_UNIT)) - .collect(), - ), - ) - .y_axis(Axis::new().name("Request count over time")) - .series(Line::new().data(req_count.to_owned())); - - let client_count_chart = Chart::new() - .title(Title::new().text("Load test results - Client count")) - .tooltip(Tooltip::new().trigger(Trigger::Axis)) - .x_axis( - Axis::new().type_(AxisType::Category).data( - time.iter() - .map(|t| format!("{}{}", t, X_DURATION_UNIT)) - .collect(), - ), - ) - .y_axis(Axis::new().name("Request count over time")) - .series(Line::new().data(client_count.to_owned())); - - let duration_chart = Chart::new() - .title(Title::new().text("Load test results - Request duration")) - .tooltip(Tooltip::new().trigger(Trigger::Axis)) - .x_axis( - Axis::new().type_(AxisType::Category).data( - time.iter() - .map(|t| format!("{}{}", t, X_DURATION_UNIT)) - .collect(), - ), - ) - .y_axis(Axis::new().name(format!("Request duration ({})", Y_DURATION_UNIT))) - .series(Line::new().data(duration.to_owned())); - - let both_chart = Chart::new() - .title( - Title::new().text("Load test results - Request duration, req count and client count"), - ) - .tooltip(Tooltip::new().trigger(Trigger::Axis)) - .x_axis( - Axis::new().type_(AxisType::Category).data( - time.iter() - .map(|t| format!("{}{}", t, X_DURATION_UNIT)) - .collect(), - ), - ) - .y_axis(Axis::new().name(format!("Request duration ({}) and count", Y_DURATION_UNIT))) - .series(Line::new().data(duration.to_owned())) - .series(Line::new().data(req_count.to_owned())) - .series(Line::new().data(client_count.to_owned())); - - let mut renderer = ImageRenderer::new(1000, 800); - - let req_count_image = renderer.render(&req_count_chart).unwrap(); - let client_count_image = renderer.render(&client_count_chart).unwrap(); - let duration_image = renderer.render(&duration_chart).unwrap(); - let both_image = renderer.render(&both_chart).unwrap(); - - let html = format!( - " - - - - Load Test Results - - -
- {} - {} - {} - {} -
- - -", - both_image, req_count_image, client_count_image, duration_image - ); - - let _ = write("./load-test-results.html", html); -} diff --git a/lang/packages/providers/core/load-testing/src/load.rs b/lang/packages/providers/core/load-testing/src/load.rs deleted file mode 100644 index 13b7e83..0000000 --- a/lang/packages/providers/core/load-testing/src/load.rs +++ /dev/null @@ -1,119 +0,0 @@ -use crate::types::DataCollection; -use nv_provider_core::{ - async_trait, Controller, Message, MessageDeserializer, MessageStreamReader, ProviderError, - ServerError, -}; -use std::sync::Arc; -use std::time::Duration; -use tokio::io::AsyncWriteExt; -use tokio::net::UnixStream; -use tokio::sync::Mutex; -use tokio::time::Instant; - -#[derive(Debug)] -struct TestController {} - -#[async_trait] -impl Controller for TestController { - async fn action(&self, message: &Message) -> Result { - Ok(message.clone()) - } -} - -pub static Y_DURATION_UNIT: &str = "µs"; -pub static X_DURATION_UNIT: &str = "ms"; - -pub async fn generate() -> Result { - log::warn!("Please ensure the OS ulimit is increased for load testing. `ulimit -n 1048576`"); - - let path = "/tmp/env.provider.nv.sock"; - - let msg = b"HOME"; - - let req_per_client = 10; - let clients = Arc::new(Mutex::new(vec![])); - - let time = Arc::new(Mutex::new(vec![])); - let req_count = Arc::new(Mutex::new(vec![])); - let client_count = Arc::new(Mutex::new(vec![])); - let duration = Arc::new(Mutex::new(vec![])); - - let root_start = Instant::now(); - - let max_runs = 1.0; // or std::f32::INFINITY - let mut runs_count = 0.0; - - while runs_count < max_runs && root_start.elapsed() <= Duration::from_secs(10) { - runs_count += 1.0; - log::debug!("Tick {} {:?}", runs_count, root_start.elapsed()); - - let start = Instant::now(); - - let req_count_num = req_count.clone().lock().await.len() as i64; - if req_count_num == 0 || req_count_num % req_per_client == 0 { - let client = UnixStream::connect(path).await; - if client.is_err() { - log::debug!("BREAKING, stream err. {:?}", client); - break; - } - - let client = client.unwrap(); - clients.lock().await.push(Arc::new(Mutex::new(client))); - } - - let client_count_num = clients.lock().await.len() as i64; - client_count.lock().await.push(client_count_num); - - let clients = clients.lock().await; - let client = clients.first().unwrap(); - let writable_client = client.clone(); - let mut writable_client = writable_client.lock().await; - - log::debug!("Writing msg... {:?}", msg); - writable_client.write_all(msg).await.unwrap(); - - std::mem::drop(writable_client); - - log::debug!("Reading response..."); - let message = MessageStreamReader::read_message(client).await.unwrap(); - - log::debug!("Message read: {:?}", message); - log::debug!("Length read: {:?}", message.len()); - - let deserialized = MessageDeserializer::deserialize(&message); - - match deserialized { - Ok(res) => { - log::debug!("Deserialized header {:?}", res.header); - log::debug!("Deserialized payload {:?}", res.payload); - log::debug!( - "Deserialized payload encoded UTF8 {:?}", - String::from_utf8(res.payload) - ); - } - - Err(err) => { - log::error!( - "Error deserializing message response in load test {:?}", - err - ); - } - } - - let root_elapsed = root_start.elapsed().as_millis() as i64; - - let elapsed = start.elapsed().as_micros(); - let elapsed = i64::try_from(elapsed).unwrap(); - - time.lock().await.push(root_elapsed); - duration.lock().await.push(elapsed); - - req_count.lock().await.push(req_count_num); - } - - for client in clients.lock().await.iter() { - let _ = client.lock().await.shutdown().await; - } - - Ok((time, req_count, client_count, duration)) -} diff --git a/lang/packages/providers/core/load-testing/src/main.rs b/lang/packages/providers/core/load-testing/src/main.rs deleted file mode 100644 index 46cb466..0000000 --- a/lang/packages/providers/core/load-testing/src/main.rs +++ /dev/null @@ -1,21 +0,0 @@ -use nv_provider_core::ServerError; - -mod charts; -mod load; -mod types; - -#[tokio::main] -async fn main() -> Result<(), ServerError> { - env_logger::init(); - - let (time, count, clients, duration) = load::generate().await?; - - charts::generate( - &time.lock().await, - &count.lock().await, - &clients.lock().await, - &duration.lock().await, - ); - - Ok(()) -} diff --git a/lang/packages/providers/core/load-testing/src/types.rs b/lang/packages/providers/core/load-testing/src/types.rs deleted file mode 100644 index 1f95183..0000000 --- a/lang/packages/providers/core/load-testing/src/types.rs +++ /dev/null @@ -1,12 +0,0 @@ -use std::sync::Arc; - -use tokio::sync::Mutex; - -pub type Value = i64; -pub type Dataset = Vec; -pub type DataCollection = ( - Arc>, - Arc>, - Arc>, - Arc>, -); diff --git a/lang/packages/providers/providers/env/__examples/Cargo.toml b/lang/packages/providers/env/examples/Cargo.toml similarity index 100% rename from lang/packages/providers/providers/env/__examples/Cargo.toml rename to lang/packages/providers/env/examples/Cargo.toml diff --git a/lang/packages/providers/providers/env/__examples/src/main.rs b/lang/packages/providers/env/examples/src/main.rs similarity index 100% rename from lang/packages/providers/providers/env/__examples/src/main.rs rename to lang/packages/providers/env/examples/src/main.rs diff --git a/lang/packages/providers/providers/env/lib/Cargo.toml b/lang/packages/providers/env/lib/Cargo.toml similarity index 71% rename from lang/packages/providers/providers/env/lib/Cargo.toml rename to lang/packages/providers/env/lib/Cargo.toml index a6359a1..16cfc4d 100644 --- a/lang/packages/providers/providers/env/lib/Cargo.toml +++ b/lang/packages/providers/env/lib/Cargo.toml @@ -5,5 +5,5 @@ edition = "2021" [dependencies] async-trait = "0.1.79" -nv-provider-core = { path = "../../../core/lib" } +nv-provider-core = { path = "../../core/lib" } log = "0.4.21" diff --git a/lang/packages/providers/env/lib/src/lib.rs b/lang/packages/providers/env/lib/src/lib.rs new file mode 100644 index 0000000..730103b --- /dev/null +++ b/lang/packages/providers/env/lib/src/lib.rs @@ -0,0 +1,4 @@ +mod provider; + +pub use nv_provider_core::{Provider, ProviderError}; +pub use provider::EnvProvider; diff --git a/lang/packages/providers/providers/env/lib/src/provider.rs b/lang/packages/providers/env/lib/src/provider.rs similarity index 85% rename from lang/packages/providers/providers/env/lib/src/provider.rs rename to lang/packages/providers/env/lib/src/provider.rs index 8be942d..428cb15 100644 --- a/lang/packages/providers/providers/env/lib/src/provider.rs +++ b/lang/packages/providers/env/lib/src/provider.rs @@ -20,8 +20,8 @@ impl Provider for EnvProvider { log::error!("Env prov err {:?}", error); match error { - env::VarError::NotPresent => ProviderError::NoValueForKey, - _ => ProviderError::ExplodeyProvider, + env::VarError::NotPresent => ProviderError::NotFound, + _ => ProviderError::Unknown("explodey".to_owned()), } }); diff --git a/lang/packages/providers/providers/aws-secrets-manager/server/Cargo.toml b/lang/packages/providers/providers/aws-secrets-manager/server/Cargo.toml deleted file mode 100644 index 24a129d..0000000 --- a/lang/packages/providers/providers/aws-secrets-manager/server/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "nv-provider-aws-secrets-manager-server" -version = "0.1.0" -edition = "2021" - -[dependencies] diff --git a/lang/packages/providers/providers/aws-secrets-manager/server/src/main.rs b/lang/packages/providers/providers/aws-secrets-manager/server/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/lang/packages/providers/providers/aws-secrets-manager/server/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -} diff --git a/lang/packages/providers/providers/env/lib/src/lib.rs b/lang/packages/providers/providers/env/lib/src/lib.rs deleted file mode 100644 index 9f0f58b..0000000 --- a/lang/packages/providers/providers/env/lib/src/lib.rs +++ /dev/null @@ -1,4 +0,0 @@ -mod provider; - -pub use nv_provider_core::{Provider, ProviderRetrievalError}; -pub use provider::EnvProvider; diff --git a/lang/packages/providers/providers/env/server/Cargo.toml b/lang/packages/providers/providers/env/server/Cargo.toml deleted file mode 100644 index 002abef..0000000 --- a/lang/packages/providers/providers/env/server/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "nv-provider-env-server" -version = "0.1.0" -edition = "2021" - -[dependencies] -async-trait = "0.1.80" -env_logger = "0.11.3" -log = "0.4.21" -nv-provider-core = { path = "../../../core/lib" } -nv-provider-env = { path = "../lib/" } -tokio = { version = "1.38.0", features = ["rt-multi-thread", "macros"] } diff --git a/lang/packages/providers/providers/env/server/src/main.rs b/lang/packages/providers/providers/env/server/src/main.rs deleted file mode 100644 index 83f81d2..0000000 --- a/lang/packages/providers/providers/env/server/src/main.rs +++ /dev/null @@ -1,37 +0,0 @@ -use nv_provider_core::{Controller, Message, ProviderError, Server}; -use nv_provider_env::{EnvProvider, Provider}; -use std::sync::Arc; - -#[derive(Debug, Default)] -struct EnvController { - provider: EnvProvider, -} - -#[async_trait::async_trait] -impl Controller for EnvController { - async fn action(&self, message: &Message) -> Result { - let val = self - .provider - .get_value(String::from_utf8(message.clone()).unwrap().as_str()) - .await; - - log::debug!("EnvController val {:?}", val); - - val - } -} - -#[tokio::main] -async fn main() { - env_logger::init(); - - let controller = Arc::new(EnvController::default()); - - let server = Server::new("/tmp/env.provider.nv.sock", controller); - - log::info!("Starting server..."); - - let result = server.start().await; - - log::info!("Result: {:?}", result); -} diff --git a/lang/packages/resolvers/__examples/var/Cargo.toml b/lang/packages/resolvers/__examples/var/Cargo.toml deleted file mode 100644 index 29e6a6e..0000000 --- a/lang/packages/resolvers/__examples/var/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "nv-examples-var-resolver-api" -version = "0.1.0" -edition = "2021" - -[dependencies] -env_logger = "0.11.2" -log = "0.4.20" -nv-parser = { path = "../../../parser" } -nv-lexer = { path = "../../../lexer" } -nv-var-resolver = { path = "../../var/" } -nv-provider-resolver = { path = "../../provider/" } -nv-provider-env = { path = "../../../providers/providers/env/lib" } -nv-provider-aws-secrets-manager = { path = "../../../providers/providers/aws-secrets-manager/lib" } -futures = "0.3.30" diff --git a/lang/packages/resolvers/provider/Cargo.toml b/lang/packages/resolvers/provider/lib/Cargo.toml similarity index 58% rename from lang/packages/resolvers/provider/Cargo.toml rename to lang/packages/resolvers/provider/lib/Cargo.toml index 66e00e3..0b92db1 100644 --- a/lang/packages/resolvers/provider/Cargo.toml +++ b/lang/packages/resolvers/provider/lib/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [dependencies] log = "0.4.21" -nv-provider-core = { path = "../../providers/core/lib" } -nv-parser = { path = "../../parser" } +nv-parser = { path = "../../../parser/lib" } +nv-provider-core = { path = "../../../providers/core/lib" } futures = "0.3.30" async-trait = "0.1.79" diff --git a/lang/packages/resolvers/provider/src/lib.rs b/lang/packages/resolvers/provider/lib/src/lib.rs similarity index 100% rename from lang/packages/resolvers/provider/src/lib.rs rename to lang/packages/resolvers/provider/lib/src/lib.rs diff --git a/lang/packages/resolvers/provider/src/resolver.rs b/lang/packages/resolvers/provider/lib/src/resolver.rs similarity index 98% rename from lang/packages/resolvers/provider/src/resolver.rs rename to lang/packages/resolvers/provider/lib/src/resolver.rs index d60d5b0..aff9dda 100644 --- a/lang/packages/resolvers/provider/src/resolver.rs +++ b/lang/packages/resolvers/provider/lib/src/resolver.rs @@ -1,5 +1,5 @@ use nv_parser::{AbstractSyntaxNode, DeclarationNode, ProviderDeclarationNode}; -pub use nv_provider_core::Provider; +use nv_provider_core::Provider; use std::sync::Arc; pub type ResolverProvider = Arc; diff --git a/lang/packages/resolvers/var/examples/Cargo.toml b/lang/packages/resolvers/var/examples/Cargo.toml new file mode 100644 index 0000000..efc825c --- /dev/null +++ b/lang/packages/resolvers/var/examples/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "nv-examples-var-resolver-api" +version = "0.1.0" +edition = "2021" + +[dependencies] +env_logger = "0.11.2" +log = "0.4.20" +nv-parser = { path = "../../../parser/lib" } +nv-lexer = { path = "../../../lexer/lib" } +nv-var-resolver = { path = "../../var/lib" } +nv-provider-resolver = { path = "../../provider/lib" } +nv-provider-env = { path = "../../../providers/env/lib" } +nv-provider-aws-secrets-manager = { path = "../../../providers/aws-secrets-manager/lib" } +futures = "0.3.30" diff --git a/lang/packages/resolvers/__examples/var/src/main.rs b/lang/packages/resolvers/var/examples/src/main.rs similarity index 100% rename from lang/packages/resolvers/__examples/var/src/main.rs rename to lang/packages/resolvers/var/examples/src/main.rs diff --git a/lang/packages/resolvers/var/Cargo.toml b/lang/packages/resolvers/var/lib/Cargo.toml similarity index 50% rename from lang/packages/resolvers/var/Cargo.toml rename to lang/packages/resolvers/var/lib/Cargo.toml index 7862b4e..02aaf79 100644 --- a/lang/packages/resolvers/var/Cargo.toml +++ b/lang/packages/resolvers/var/lib/Cargo.toml @@ -5,8 +5,7 @@ edition = "2021" [dependencies] log = "0.4.21" -nv-provider-core = { path = "../../providers/core/lib" } -nv-parser = { path = "../../parser" } -nv-provider-resolver = { path = "../provider" } +nv-parser = { path = "../../../parser/lib" } +nv-provider-resolver = { path = "../../provider/lib" } futures = "0.3.30" async-trait = "0.1.79" diff --git a/lang/packages/resolvers/var/src/lib.rs b/lang/packages/resolvers/var/lib/src/lib.rs similarity index 100% rename from lang/packages/resolvers/var/src/lib.rs rename to lang/packages/resolvers/var/lib/src/lib.rs diff --git a/lang/packages/resolvers/var/src/resolver.rs b/lang/packages/resolvers/var/lib/src/resolver.rs similarity index 99% rename from lang/packages/resolvers/var/src/resolver.rs rename to lang/packages/resolvers/var/lib/src/resolver.rs index ff4e355..8580536 100644 --- a/lang/packages/resolvers/var/src/resolver.rs +++ b/lang/packages/resolvers/var/lib/src/resolver.rs @@ -1,7 +1,6 @@ use async_trait::async_trait; use futures::{stream, StreamExt}; use nv_parser::{AbstractSyntaxNode, DeclarationNode, VarDeclarationNode}; -pub use nv_provider_core::Provider; use nv_provider_resolver::ProviderResolver; use std::{error::Error, fmt};