diff --git a/Cargo.lock b/Cargo.lock index 074ef441..814c9c62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,9 +21,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -45,9 +45,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" @@ -60,29 +60,29 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-trait" @@ -109,9 +109,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.15.2" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88aab2464f1f25453baa7a07c84c5b7684e274054ba06817f382357f77a288" +checksum = "0ec6fb3fe69024a75fa7e1bfb48aa6cf59706a101658ea01bfd33b2b248a038f" dependencies = [ "aws-lc-sys", "zeroize", @@ -119,9 +119,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.35.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45afffdee1e7c9126814751f88dddc747f41d91da16c9551a0f1e8a11e788a1" +checksum = "f50037ee5e1e41e7b8f9d161680a725bd1626cb6f8c7e901f91f942850852fe7" dependencies = [ "cc", "cmake", @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.4" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ "axum-core", "bytes", @@ -147,8 +147,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", + "serde_core", "sync_wrapper", "tower", "tower-layer", @@ -157,9 +156,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.2" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", @@ -168,7 +167,6 @@ dependencies = [ "http-body-util", "mime", "pin-project-lite", - "rustversion", "sync_wrapper", "tower-layer", "tower-service", @@ -188,9 +186,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] name = "block-buffer" @@ -213,9 +211,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytecount" @@ -231,18 +229,18 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "bzip2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea8dcd42434048e4f7a304411d9273a411f647446c1234a65ce0554923f4cff" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" dependencies = [ "libbz2-rs-sys", ] [[package]] name = "cc" -version = "1.2.51" +version = "1.2.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" +checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" dependencies = [ "find-msvc-tools", "jobserver", @@ -258,9 +256,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -270,9 +268,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "num-traits", ] @@ -323,15 +321,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "cmake" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] @@ -365,9 +363,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "colored" @@ -375,7 +373,7 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -450,21 +448,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - [[package]] name = "crc32fast" version = "1.5.0" @@ -476,9 +459,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -504,15 +487,15 @@ dependencies = [ [[package]] name = "deflate64" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" +checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" [[package]] name = "deranged" -version = "0.5.4" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -524,7 +507,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", - "crypto-common 0.1.6", + "crypto-common 0.1.7", ] [[package]] @@ -585,20 +568,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "find-msvc-tools" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixedbitset" @@ -608,13 +591,12 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ - "crc32fast", - "libz-rs-sys", "miniz_oxide", + "zlib-rs", ] [[package]] @@ -753,41 +735,41 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", - "r-efi", - "wasi 0.14.7+wasi-0.2.4", + "r-efi 5.3.0", + "wasip2", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "js-sys", "libc", - "r-efi", + "r-efi 6.0.0", "wasip2", "wasip3", "wasm-bindgen", @@ -795,9 +777,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -821,6 +803,12 @@ dependencies = [ "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "heck" version = "0.5.0" @@ -838,12 +826,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -893,9 +880,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ "atomic-waker", "bytes", @@ -908,7 +895,6 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -916,15 +902,14 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http", "hyper", "hyper-util", "rustls", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -945,14 +930,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64", "bytes", "futures-channel", - "futures-core", "futures-util", "http", "http-body", @@ -971,12 +955,13 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" dependencies = [ "displaydoc", "potential_utf", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -984,9 +969,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -997,11 +982,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -1012,42 +996,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -1084,23 +1064,23 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.17.0", "serde", "serde_core", ] [[package]] name = "inotify" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.1", "inotify-sys", "libc", ] @@ -1125,15 +1105,15 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ "memchr", "serde", @@ -1141,9 +1121,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -1156,9 +1136,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jni" @@ -1169,7 +1149,7 @@ dependencies = [ "cesu8", "cfg-if", "combine", - "jni-sys", + "jni-sys 0.3.1", "log", "thiserror 1.0.69", "walkdir", @@ -1178,9 +1158,31 @@ dependencies = [ [[package]] name = "jni-sys" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn", +] [[package]] name = "jobserver" @@ -1188,16 +1190,18 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -1230,36 +1234,27 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libbz2-rs-sys" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" +checksum = "b3a6a8c165077efc8f3a971534c50ea6a1a18b329ef4a66e897a7e3a1494565f" [[package]] name = "libc" -version = "0.2.184" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" - -[[package]] -name = "libz-rs-sys" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" -dependencies = [ - "zlib-rs", -] +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "log" @@ -1275,11 +1270,10 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "lzma-rust2" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d673a11333485e7d8b93d62a9a5b07b22daf5e8a8655a44c1bb18aa4bf3d1524" +checksum = "47bb1e988e6fb779cf720ad431242d3f03167c1b3f2b1aae7f1a94b2495b36ae" dependencies = [ - "crc", "sha2", ] @@ -1291,9 +1285,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "mime" @@ -1308,6 +1302,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -1318,8 +1313,8 @@ checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "log", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.61.1", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -1334,7 +1329,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.1", "fsevent-sys", "inotify", "kqueue", @@ -1348,15 +1343,18 @@ dependencies = [ [[package]] name = "notify-types" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" +checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" +dependencies = [ + "bitflags 2.11.1", +] [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-traits" @@ -1369,21 +1367,21 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "openssl-probe" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "papergrid" @@ -1451,28 +1449,29 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" -version = "0.7.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", + "hashbrown 0.15.5", "indexmap", ] [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", @@ -1481,27 +1480,21 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] @@ -1580,15 +1573,14 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ "heck", "itertools", "log", "multimap", - "once_cell", "petgraph", "prettyplease", "prost", @@ -1615,29 +1607,29 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ "prost", ] [[package]] name = "pulldown-cmark" -version = "0.13.0" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" +checksum = "7c3a14896dfa883796f1cb410461aef38810ea05f2b2c33c5aded3649095fdad" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.1", "memchr", "unicase", ] [[package]] name = "pulldown-cmark-to-cmark" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" +checksum = "50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90" dependencies = [ "pulldown-cmark", ] @@ -1656,7 +1648,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -1664,13 +1656,13 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ "aws-lc-rs", "bytes", - "getrandom 0.3.3", + "getrandom 0.3.4", "lru-slab", "rand", "ring", @@ -1678,7 +1670,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -1695,7 +1687,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -1713,11 +1705,17 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha", "rand_core", @@ -1735,18 +1733,18 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", ] [[package]] name = "regex" -version = "1.11.3" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -1756,9 +1754,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -1767,9 +1765,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" @@ -1822,7 +1820,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", @@ -1830,28 +1828,28 @@ dependencies = [ [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.32" +version = "0.23.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" +checksum = "7c2c118cb077cca2822033836dfb1b975355dfb784b5e8da48f7b6c5db74e60e" dependencies = [ "aws-lc-rs", "once_cell", @@ -1875,9 +1873,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ "web-time", "zeroize", @@ -1901,7 +1899,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -1912,9 +1910,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.6" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "aws-lc-rs", "ring", @@ -1939,20 +1937,20 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ - "windows-sys 0.61.1", + "windows-sys 0.61.2", ] [[package]] name = "security-framework" -version = "3.5.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.1", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -1961,9 +1959,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -1971,9 +1969,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" @@ -2048,15 +2046,15 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" @@ -2071,14 +2069,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "strsim" @@ -2125,11 +2123,11 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.1", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -2170,15 +2168,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.23.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2201,11 +2199,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -2221,9 +2219,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -2252,9 +2250,9 @@ checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "zerovec", @@ -2262,9 +2260,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -2287,7 +2285,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.61.1", + "windows-sys 0.61.2", ] [[package]] @@ -2313,9 +2311,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -2324,9 +2322,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -2366,9 +2364,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40aaccc9f9eccf2cd82ebc111adc13030d23e887244bc9cfa5d1d636049de3" +checksum = "1882ac3bf5ef12877d7ed57aad87e75154c11931c2ba7e6cde5e22d63522c734" dependencies = [ "prettyplease", "proc-macro2", @@ -2378,9 +2376,9 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" dependencies = [ "bytes", "prost", @@ -2389,9 +2387,9 @@ dependencies = [ [[package]] name = "tonic-prost-build" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" +checksum = "f3144df636917574672e93d0f56d7edec49f90305749c668df5101751bb8f95a" dependencies = [ "prettyplease", "proc-macro2", @@ -2405,9 +2403,9 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -2428,7 +2426,7 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.1", "bytes", "futures-util", "http", @@ -2454,9 +2452,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -2465,9 +2463,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -2476,9 +2474,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", ] @@ -2491,9 +2489,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tucana" -version = "0.0.68" +version = "0.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abae78f798d1203bbcce361ba4cb4c500f8fe64e56d16ba3a5a0854e285377eb" +checksum = "2514ae6005ba6f36306aa718d06e80b520f073c8a5594eb1659cda7f56988dc9" dependencies = [ "pbjson", "pbjson-build", @@ -2511,9 +2509,9 @@ dependencies = [ [[package]] name = "typed-path" -version = "0.12.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7922f2cdc51280d47b491af9eafc41eb0cdab85eabcb390c854412fcbf26dbe8" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" [[package]] name = "typenum" @@ -2523,21 +2521,21 @@ checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "unicase" -version = "2.8.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-width" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode-xid" @@ -2553,9 +2551,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", @@ -2606,22 +2604,13 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen 0.46.0", + "wit-bindgen 0.57.1", ] [[package]] @@ -2635,9 +2624,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -2648,23 +2637,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2672,9 +2657,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", @@ -2685,9 +2670,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -2733,17 +2718,17 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.9.4", - "hashbrown", + "bitflags 2.11.1", + "hashbrown 0.15.5", "indexmap", "semver", ] [[package]] name = "web-sys" -version = "0.3.85" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", @@ -2761,9 +2746,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.4" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ "rustls-pki-types", ] @@ -2774,48 +2759,42 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-registry" -version = "0.5.3" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link 0.1.3", + "windows-link", "windows-result", "windows-strings", ] [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -2842,16 +2821,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.4", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.61.1" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.0", + "windows-link", ] [[package]] @@ -2887,19 +2866,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.4" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.2.0", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -2916,9 +2895,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -2934,9 +2913,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -2952,9 +2931,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -2964,9 +2943,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -2982,9 +2961,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -3000,9 +2979,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -3018,9 +2997,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -3036,15 +3015,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - -[[package]] -name = "wit-bindgen" -version = "0.46.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "wit-bindgen" @@ -3055,6 +3028,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -3104,7 +3083,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.9.4", + "bitflags 2.11.1", "indexmap", "log", "serde", @@ -3136,17 +3115,16 @@ dependencies = [ [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -3154,9 +3132,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", @@ -3166,18 +3144,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.31" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.31" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", @@ -3186,18 +3164,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", @@ -3207,15 +3185,15 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", @@ -3224,9 +3202,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "yoke", "zerofrom", @@ -3235,9 +3213,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", @@ -3256,7 +3234,7 @@ dependencies = [ "crc32fast", "deflate64", "flate2", - "getrandom 0.4.1", + "getrandom 0.4.2", "hmac", "indexmap", "lzma-rust2", @@ -3273,15 +3251,15 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.5.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" [[package]] name = "zmij" -version = "1.0.5" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3280a1b827474fcd5dbef4b35a674deb52ba5c312363aef9135317df179d81b" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "zopfli" diff --git a/Cargo.toml b/Cargo.toml index 1f569142..0ea26c1f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ edition = "2024" [workspace.dependencies] serde = "1.0.219" serde_json = "1.0.140" -tucana = "0.0.68" +tucana = "0.0.69" clap = "4.5.41" colored = "3.0" tabled = "0.20" @@ -21,3 +21,4 @@ bytes = "1.10.1" prost = "0.14.1" walkdir = "2.5.0" log = "0.4.28" +tonic = "0.14.2" diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 1af2ce38..a41e513b 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -2,7 +2,7 @@ name = "code0-cli" version = "0.0.0" edition = "2024" -description = "The cli for managing the Code0-Definitions" +description = "The CLI for managing the CodeZero's definitions" repository = "https://github.com/code0-tech/code0-definitions" homepage = "https://code0.tech" license = "Apache-2.0" @@ -22,5 +22,6 @@ futures = { workspace = true } zip = { workspace = true } bytes = { workspace = true } prost = { workspace = true } -tonic = "0.14.2" -log = "0.4.28" \ No newline at end of file +tonic = { workspace = true } +log = { workspace = true } + diff --git a/crates/cli/src/analyser/core.rs b/crates/cli/src/analyser/core.rs index cec94cbd..d675c400 100644 --- a/crates/cli/src/analyser/core.rs +++ b/crates/cli/src/analyser/core.rs @@ -1,9 +1,12 @@ -use crate::analyser::index_identifier::IdentifierIndex; use crate::diagnostics::diagnose::Diagnose; use crate::diagnostics::kinds::DiagnosticKind; use crate::diagnostics::reporter::Reporter; -use crate::parser::Meta; -use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; +use crate::parser::ModuleConfiguration; +use crate::{analyser::index_identifier::IdentifierIndex, reader::Meta}; +use tucana::shared::{ + DefinitionDataType, FlowType, FunctionDefinition, ModuleConfigurationDefinition, + RuntimeFlowType, RuntimeFunctionDefinition, +}; #[derive(Clone)] pub struct AnalysableDataType { @@ -26,12 +29,44 @@ pub struct AnalysableFunction { pub id: i16, } +#[derive(Clone)] +pub struct AnalysableRuntimeFlowType { + pub original_definition: Meta, + pub runtime_flow_type: RuntimeFlowType, + pub id: i16, +} + +#[derive(Clone)] +pub struct AnalysableFunctionDefinition { + pub original_definition: Meta, + pub function_definition: FunctionDefinition, + pub id: i16, +} + +#[derive(Clone)] +pub struct AnalysableModuleConfigurationDefinition { + pub original_definition: Meta, + pub module_configuration_definition: ModuleConfigurationDefinition, + pub id: i16, +} + +#[derive(Clone)] +pub struct AnalysableModuleDefinition { + pub original_definition: Meta, + pub module_definition: ModuleConfiguration, + pub id: i16, +} + pub struct Analyser { pub reporter: Reporter, pub(crate) index: IdentifierIndex, pub data_types: Vec, pub flow_types: Vec, pub functions: Vec, + pub runtime_flow_types: Vec, + pub function_definitions: Vec, + pub module_configuration_definitions: Vec, + pub module_definitions: Vec, } impl Analyser { @@ -50,6 +85,18 @@ impl Analyser { for f in self.functions.clone() { self.analyse_runtime_function(&f); } + for rft in self.runtime_flow_types.clone() { + self.analyse_runtime_flow_type(&rft); + } + for f in self.function_definitions.clone() { + self.analyse_function_definition(&f); + } + for config in self.module_configuration_definitions.clone() { + self.analyse_module_configuration_definition(&config); + } + for module in self.module_definitions.clone() { + self.analyse_module_definition(&module); + } self.reporter.print(will_exit, true, with_warning); } diff --git a/crates/cli/src/analyser/data_type.rs b/crates/cli/src/analyser/data_type.rs index fb6e5deb..62cd5441 100644 --- a/crates/cli/src/analyser/data_type.rs +++ b/crates/cli/src/analyser/data_type.rs @@ -47,7 +47,7 @@ impl Analyser { )); } - if dt.r#type == "" { + if dt.r#type.is_empty() { self.reporter.add(Diagnose::new( dt.identifier.clone(), adt.original_definition.clone(), diff --git a/crates/cli/src/analyser/flow_type.rs b/crates/cli/src/analyser/flow_type.rs index 4f2bdb56..9f679d4a 100644 --- a/crates/cli/src/analyser/flow_type.rs +++ b/crates/cli/src/analyser/flow_type.rs @@ -77,7 +77,7 @@ impl Analyser { )); } - if &flow.signature == "" { + if flow.signature.is_empty() { self.reporter.add(Diagnose::new( name.clone(), original.clone(), diff --git a/crates/cli/src/analyser/function.rs b/crates/cli/src/analyser/function.rs index 7f630287..6801fce7 100644 --- a/crates/cli/src/analyser/function.rs +++ b/crates/cli/src/analyser/function.rs @@ -78,7 +78,7 @@ impl Analyser { )); } - if function.signature == "" { + if function.signature.is_empty() { self.reporter.add(Diagnose::new( name.clone(), original.clone(), diff --git a/crates/cli/src/analyser/function_definition.rs b/crates/cli/src/analyser/function_definition.rs new file mode 100644 index 00000000..1a0e75c8 --- /dev/null +++ b/crates/cli/src/analyser/function_definition.rs @@ -0,0 +1,141 @@ +use crate::analyser::core::{AnalysableFunctionDefinition, Analyser}; +use crate::diagnostics::diagnose::Diagnose; +use crate::diagnostics::kinds::DiagnosticKind; + +impl Analyser { + pub fn analyse_function_definition(&mut self, afd: &AnalysableFunctionDefinition) { + let name = afd.function_definition.runtime_name.clone(); + let function = &afd.function_definition; + let original = afd.original_definition.clone(); + + for linked in function.linked_data_type_identifiers.clone() { + if !self.data_type_identifier_exists(linked.as_str(), None) { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedDataTypeIdentifier { + identifier: linked.clone(), + }, + )); + } + } + + if function.display_icon.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::NullField { + field_name: "displayIcon".into(), + }, + )) + } + + if function.alias.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::MissingTranslation { + translation_field: "alias".into(), + }, + )); + } + + if function.display_message.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::MissingTranslation { + translation_field: "displayMessage".into(), + }, + )); + } + + if function.name.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "name".into(), + }, + )); + } + if function.description.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "description".into(), + }, + )); + } + if function.documentation.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "documentation".into(), + }, + )); + } + + if function.signature.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::NullField { + field_name: "signature".into(), + }, + )); + } + + let mut param_names: Vec = vec![]; + for parameter in &function.parameter_definitions { + if parameter.name.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "name".into(), + }, + )); + } + if parameter.description.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "description".into(), + }, + )); + } + if parameter.documentation.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "documentation".into(), + }, + )); + } + + if param_names.contains(¶meter.runtime_name) { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::DuplicateRuntimeParameterIdentifier { + identifier: parameter.runtime_name.clone(), + }, + )); + } + param_names.push(parameter.runtime_name.clone()); + } + + if self.index.has_function_definition(&name, Some(afd.id)) { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::DuplicateFunctionIdentifier { identifier: name }, + )); + } + } +} diff --git a/crates/cli/src/analyser/index_identifier.rs b/crates/cli/src/analyser/index_identifier.rs index 3ed4bb2a..7517bd12 100644 --- a/crates/cli/src/analyser/index_identifier.rs +++ b/crates/cli/src/analyser/index_identifier.rs @@ -4,7 +4,10 @@ use std::collections::HashMap; pub struct IdentifierIndex { data_types: HashMap, flow_types: HashMap, + runtime_flow_types: HashMap, functions: HashMap, + function_definitions: HashMap, + module_configuration_definitions: HashMap, } fn normalize(s: &str) -> String { @@ -18,9 +21,19 @@ impl IdentifierIndex { pub fn insert_flow_type(&mut self, name: &str, id: i16) -> Option { self.flow_types.insert(normalize(name), id) } + pub fn insert_runtime_flow_type(&mut self, name: &str, id: i16) -> Option { + self.runtime_flow_types.insert(normalize(name), id) + } pub fn insert_function(&mut self, name: &str, id: i16) -> Option { self.functions.insert(normalize(name), id) } + pub fn insert_function_definition(&mut self, name: &str, id: i16) -> Option { + self.function_definitions.insert(normalize(name), id) + } + pub fn insert_module_configuration_definition(&mut self, name: &str, id: i16) -> Option { + self.module_configuration_definitions + .insert(normalize(name), id) + } pub fn has_data_type(&self, name: &str, except: Option) -> bool { self.data_types @@ -35,4 +48,25 @@ impl IdentifierIndex { .map(|found| except.map(|e| *found != e).unwrap_or(true)) .unwrap_or(false) } + + pub fn has_runtime_flow_type(&self, name: &str, except: Option) -> bool { + self.runtime_flow_types + .get(&normalize(name)) + .map(|found| except.map(|e| *found != e).unwrap_or(true)) + .unwrap_or(false) + } + + pub fn has_function_definition(&self, name: &str, except: Option) -> bool { + self.function_definitions + .get(&normalize(name)) + .map(|found| except.map(|e| *found != e).unwrap_or(true)) + .unwrap_or(false) + } + + pub fn has_module_configuration_definition(&self, name: &str, except: Option) -> bool { + self.module_configuration_definitions + .get(&normalize(name)) + .map(|found| except.map(|e| *found != e).unwrap_or(true)) + .unwrap_or(false) + } } diff --git a/crates/cli/src/analyser/loader.rs b/crates/cli/src/analyser/loader.rs index c7cafb65..ee309f59 100644 --- a/crates/cli/src/analyser/loader.rs +++ b/crates/cli/src/analyser/loader.rs @@ -1,10 +1,18 @@ -use super::core::{AnalysableDataType, AnalysableFlowType, AnalysableFunction, Analyser}; -use crate::analyser::index_identifier::IdentifierIndex; +use super::core::{ + AnalysableDataType, AnalysableFlowType, AnalysableFunction, AnalysableFunctionDefinition, + AnalysableModuleConfigurationDefinition, AnalysableModuleDefinition, AnalysableRuntimeFlowType, + Analyser, +}; use crate::diagnostics::diagnose::Diagnose; use crate::diagnostics::kinds::DiagnosticKind; use crate::diagnostics::reporter::Reporter; -use crate::parser::{MetaType, Parser, Reader}; -use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; +use crate::parser::{ModuleConfiguration, Parser}; +use crate::reader::MetaType; +use crate::{analyser::index_identifier::IdentifierIndex, reader::Reader}; +use tucana::shared::{ + DefinitionDataType, FlowType, FunctionDefinition, ModuleConfigurationDefinition, + RuntimeFlowType, RuntimeFunctionDefinition, +}; pub fn load_from_path(path: &str) -> Analyser { let mut reporter = Reporter::default(); @@ -14,6 +22,12 @@ pub fn load_from_path(path: &str) -> Analyser { let mut collected_data_types: Vec = vec![]; let mut collected_flow_types: Vec = vec![]; let mut collected_functions: Vec = vec![]; + let mut collected_runtime_flow_types: Vec = vec![]; + let mut collected_function_definitions: Vec = vec![]; + let mut collected_module_configuration_definitions: Vec< + AnalysableModuleConfigurationDefinition, + > = vec![]; + let mut collected_module_definitions: Vec = vec![]; let mut index = IdentifierIndex::default(); for definition in reader.meta { @@ -130,6 +144,150 @@ pub fn load_from_path(path: &str) -> Analyser { } } } + MetaType::RuntimeFlowType => { + current_index += 1; + match serde_json::from_str::(definition.definition_string.as_str()) + { + Ok(runtime_flow_type) => { + if let Some(_prev) = index + .insert_runtime_flow_type(&runtime_flow_type.identifier, current_index) + { + reporter.add(Diagnose::new( + runtime_flow_type.identifier.clone(), + definition.clone(), + DiagnosticKind::DuplicateRuntimeFlowTypeIdentifier { + identifier: runtime_flow_type.identifier.clone(), + }, + )); + } + collected_runtime_flow_types.push(AnalysableRuntimeFlowType { + original_definition: definition.clone(), + runtime_flow_type, + id: current_index, + }); + } + Err(err) => { + let name = Parser::extract_identifier( + definition.definition_string.as_str(), + MetaType::RuntimeFlowType, + ); + reporter.add(Diagnose::new( + name, + definition.clone(), + DiagnosticKind::DeserializationError { + description: err.to_string(), + }, + )); + } + } + } + MetaType::Function => { + current_index += 1; + match serde_json::from_str::( + definition.definition_string.as_str(), + ) { + Ok(function_definition) => { + if let Some(_prev) = index.insert_function_definition( + &function_definition.runtime_name, + current_index, + ) { + reporter.add(Diagnose::new( + function_definition.runtime_name.clone(), + definition.clone(), + DiagnosticKind::DuplicateFunctionIdentifier { + identifier: function_definition.runtime_name.clone(), + }, + )); + } + collected_function_definitions.push(AnalysableFunctionDefinition { + original_definition: definition.clone(), + function_definition, + id: current_index, + }); + } + Err(err) => { + let name = Parser::extract_identifier( + definition.definition_string.as_str(), + MetaType::Function, + ); + reporter.add(Diagnose::new( + name, + definition.clone(), + DiagnosticKind::DeserializationError { + description: err.to_string(), + }, + )); + } + } + } + MetaType::Configs => { + current_index += 1; + match serde_json::from_str::( + definition.definition_string.as_str(), + ) { + Ok(module_configuration_definition) => { + if let Some(_prev) = index.insert_module_configuration_definition( + &module_configuration_definition.identifier, + current_index, + ) { + reporter.add(Diagnose::new( + module_configuration_definition.identifier.clone(), + definition.clone(), + DiagnosticKind::DuplicateModuleConfigurationIdentifier { + identifier: module_configuration_definition.identifier.clone(), + }, + )); + } + collected_module_configuration_definitions.push( + AnalysableModuleConfigurationDefinition { + original_definition: definition.clone(), + module_configuration_definition, + id: current_index, + }, + ); + } + Err(err) => { + let name = Parser::extract_identifier( + definition.definition_string.as_str(), + MetaType::Configs, + ); + reporter.add(Diagnose::new( + name, + definition.clone(), + DiagnosticKind::DeserializationError { + description: err.to_string(), + }, + )); + } + } + } + MetaType::ModuleDefinition => { + current_index += 1; + match serde_json::from_str::( + definition.definition_string.as_str(), + ) { + Ok(module_definition) => { + collected_module_definitions.push(AnalysableModuleDefinition { + original_definition: definition.clone(), + module_definition, + id: current_index, + }); + } + Err(err) => { + let name = Parser::extract_identifier( + definition.definition_string.as_str(), + MetaType::ModuleDefinition, + ); + reporter.add(Diagnose::new( + name, + definition.clone(), + DiagnosticKind::DeserializationError { + description: err.to_string(), + }, + )); + } + } + } } } Analyser { @@ -138,5 +296,9 @@ pub fn load_from_path(path: &str) -> Analyser { data_types: collected_data_types, flow_types: collected_flow_types, functions: collected_functions, + runtime_flow_types: collected_runtime_flow_types, + function_definitions: collected_function_definitions, + module_configuration_definitions: collected_module_configuration_definitions, + module_definitions: collected_module_definitions, } } diff --git a/crates/cli/src/analyser/mod.rs b/crates/cli/src/analyser/mod.rs index ff23c76e..eb22140e 100644 --- a/crates/cli/src/analyser/mod.rs +++ b/crates/cli/src/analyser/mod.rs @@ -2,5 +2,9 @@ pub mod core; mod data_type; mod flow_type; mod function; +mod function_definition; mod index_identifier; mod loader; +mod module_configuration_definition; +mod module_definition; +mod runtime_flow_type; diff --git a/crates/cli/src/analyser/module_configuration_definition.rs b/crates/cli/src/analyser/module_configuration_definition.rs new file mode 100644 index 00000000..42ac4db6 --- /dev/null +++ b/crates/cli/src/analyser/module_configuration_definition.rs @@ -0,0 +1,69 @@ +use crate::analyser::core::{AnalysableModuleConfigurationDefinition, Analyser}; +use crate::diagnostics::diagnose::Diagnose; +use crate::diagnostics::kinds::DiagnosticKind; + +impl Analyser { + pub fn analyse_module_configuration_definition( + &mut self, + amcd: &AnalysableModuleConfigurationDefinition, + ) { + let config = &amcd.module_configuration_definition; + let name = config.identifier.clone(); + let original = amcd.original_definition.clone(); + + if self + .index + .has_module_configuration_definition(&name, Some(amcd.id)) + { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::DuplicateModuleConfigurationIdentifier { + identifier: name.clone(), + }, + )); + } + + for linked in config.linked_data_type_identifiers.clone() { + if !self.data_type_identifier_exists(linked.as_str(), None) { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedDataTypeIdentifier { + identifier: linked.clone(), + }, + )); + } + } + + if config.name.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "name".into(), + }, + )); + } + + if config.description.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "description".into(), + }, + )); + } + + if config.r#type.is_empty() { + self.reporter.add(Diagnose::new( + name, + original, + DiagnosticKind::NullField { + field_name: "type".into(), + }, + )); + } + } +} diff --git a/crates/cli/src/analyser/module_definition.rs b/crates/cli/src/analyser/module_definition.rs new file mode 100644 index 00000000..69d0a562 --- /dev/null +++ b/crates/cli/src/analyser/module_definition.rs @@ -0,0 +1,52 @@ +use crate::analyser::core::{AnalysableModuleDefinition, Analyser}; +use crate::diagnostics::diagnose::Diagnose; +use crate::diagnostics::kinds::DiagnosticKind; + +impl Analyser { + pub fn analyse_module_definition(&mut self, amd: &AnalysableModuleDefinition) { + let module = &amd.module_definition; + let name = if module.identifier.is_empty() { + "".to_string() + } else { + module.identifier.clone() + }; + let original = amd.original_definition.clone(); + + if module.identifier.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::NullField { + field_name: "identifier".into(), + }, + )); + } + if module.name.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "name".into(), + }, + )); + } + if module.description.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "description".into(), + }, + )); + } + if module.icon.is_empty() { + self.reporter.add(Diagnose::new( + name, + original, + DiagnosticKind::NullField { + field_name: "icon".into(), + }, + )); + } + } +} diff --git a/crates/cli/src/analyser/runtime_flow_type.rs b/crates/cli/src/analyser/runtime_flow_type.rs new file mode 100644 index 00000000..36f96c0a --- /dev/null +++ b/crates/cli/src/analyser/runtime_flow_type.rs @@ -0,0 +1,119 @@ +use crate::analyser::core::{AnalysableRuntimeFlowType, Analyser}; +use crate::diagnostics::diagnose::Diagnose; +use crate::diagnostics::kinds::DiagnosticKind; + +impl Analyser { + pub fn analyse_runtime_flow_type(&mut self, arft: &AnalysableRuntimeFlowType) { + let flow = &arft.runtime_flow_type; + let name = flow.identifier.clone(); + let original = arft.original_definition.clone(); + + for linked in flow.linked_data_type_identifiers.clone() { + if !self.data_type_identifier_exists(linked.as_str(), None) { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedDataTypeIdentifier { + identifier: linked.clone(), + }, + )); + } + } + + if flow.display_icon.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::NullField { + field_name: "displayIcon".into(), + }, + )) + } + if flow.alias.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::MissingTranslation { + translation_field: "alias".into(), + }, + )); + } + + if flow.display_message.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::MissingTranslation { + translation_field: "displayMessage".into(), + }, + )); + } + + if flow.name.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "name".into(), + }, + )); + } + if flow.description.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "description".into(), + }, + )); + } + if flow.documentation.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "documentation".into(), + }, + )); + } + + if flow.signature.is_empty() { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::NullField { + field_name: "signature".into(), + }, + )); + } + + for setting in &flow.runtime_settings { + if setting.name.is_empty() { + self.reporter.add(Diagnose::new( + setting.identifier.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "runtime_flow_setting.name".into(), + }, + )); + } + if setting.description.is_empty() { + self.reporter.add(Diagnose::new( + setting.identifier.clone(), + original.clone(), + DiagnosticKind::UndefinedTranslation { + translation_field: "runtime_flow_setting.description".into(), + }, + )); + } + } + + if self.index.has_runtime_flow_type(&name, Some(arft.id)) { + self.reporter.add(Diagnose::new( + name.clone(), + original.clone(), + DiagnosticKind::DuplicateRuntimeFlowTypeIdentifier { identifier: name }, + )); + } + } +} diff --git a/crates/cli/src/command/feature.rs b/crates/cli/src/command/feature.rs deleted file mode 100644 index 6387725a..00000000 --- a/crates/cli/src/command/feature.rs +++ /dev/null @@ -1,82 +0,0 @@ -use crate::analyser::core::Analyser; -use crate::formatter::{success, success_table}; -use crate::parser::{Feature, Parser}; -use crate::table::{feature_table, summary_table}; - -pub fn search_feature(name: Option, path: Option) { - let dir_path = path.unwrap_or_else(|| "./definitions".to_string()); - - let parser = match Parser::from_path(dir_path.as_str()) { - Some(reader) => reader, - None => { - panic!("Error reading definitions"); - } - }; - - let mut analyser = Analyser::new(dir_path.as_str()); - analyser.report(true, true); - - let features = match name { - None => parser.features.clone(), - Some(feature_name) => parser - .features - .iter() - .filter(|f| f.name.to_lowercase() == feature_name.to_lowercase()) - .cloned() - .collect::>(), - }; - - for feature in &features { - let (flow_type_rows, data_type_rows, function_rows) = feature_table(feature); - - if !flow_type_rows.is_empty() { - success(format!( - "The feature (`{}`) detected {} flow_types.", - feature.name, - flow_type_rows.len() - )); - success_table(flow_type_rows) - } - - if !data_type_rows.is_empty() { - success(format!( - "The feature (`{}`) detected {} data_types.", - feature.name, - data_type_rows.len() - )); - success_table(data_type_rows) - } - - if !function_rows.is_empty() { - success(format!( - "The feature (`{}`) detected {} runtime_function_definition.", - feature.name, - function_rows.len() - )); - success_table(function_rows) - } - } - - let summary = summary_table(&features); - success_table(summary); - - success(format!( - "Defined a total of {} Features with {} FlowTypes {} DataTypes and {} Functions!", - parser.features.iter().len(), - parser - .features - .iter() - .map(|f| f.flow_types.len()) - .sum::(), - parser - .features - .iter() - .map(|f| f.data_types.len()) - .sum::(), - parser - .features - .iter() - .map(|f| f.runtime_functions.len()) - .sum::() - )) -} diff --git a/crates/cli/src/command/mod.rs b/crates/cli/src/command/mod.rs index 76ca0579..90365c8e 100644 --- a/crates/cli/src/command/mod.rs +++ b/crates/cli/src/command/mod.rs @@ -1,6 +1,7 @@ pub mod download; -pub mod feature; +pub mod parse_errors; pub mod push; pub mod report; pub mod search; +pub mod search_module; pub mod watch; diff --git a/crates/cli/src/command/parse_errors.rs b/crates/cli/src/command/parse_errors.rs new file mode 100644 index 00000000..5dbc18af --- /dev/null +++ b/crates/cli/src/command/parse_errors.rs @@ -0,0 +1,30 @@ +use crate::formatter::{error, error_without_trace}; +use crate::parser::Parser; + +pub fn fail_on_parser_errors(parser: &Parser) { + let mut total_errors = 0usize; + + for module in &parser.modules { + for parse_error in &module.errors { + total_errors += 1; + println!( + "{}", + error( + format!( + "Failed to parse {} `{}`: {}", + parse_error.definition_type, parse_error.definition, parse_error.error + ), + &parse_error.path, + ) + ); + } + } + + if total_errors > 0 { + error_without_trace(format!( + "Found {} definition parse error(s). Fix the files above and retry.", + total_errors + )); + std::process::exit(1); + } +} diff --git a/crates/cli/src/command/push/flow_type_client_impl.rs b/crates/cli/src/command/push/flow_type_client_impl.rs deleted file mode 100644 index 226c9f71..00000000 --- a/crates/cli/src/command/push/flow_type_client_impl.rs +++ /dev/null @@ -1,53 +0,0 @@ -use crate::command::push::auth::get_authorization_metadata; -use crate::formatter::error_without_trace; -use crate::formatter::info; -use tonic::Extensions; -use tonic::Request; -use tonic::transport::Channel; -use tucana::sagittarius::FlowTypeUpdateRequest as SagittariusFlowTypeUpdateRequest; -use tucana::sagittarius::flow_type_service_client::FlowTypeServiceClient; -use tucana::shared::FlowType; - -pub struct SagittariusFlowTypeServiceClient { - client: FlowTypeServiceClient, - token: String, -} - -impl SagittariusFlowTypeServiceClient { - pub async fn new(sagittarius_url: String, token: String) -> Self { - let client = match FlowTypeServiceClient::connect(sagittarius_url).await { - Ok(client) => { - info(String::from( - "Successfully connected to Sagittarius FlowType Endpoint!", - )); - client - } - Err(err) => panic!( - "Failed to connect to Sagittarius (FlowType Endpoint): {:?}", - err - ), - }; - - Self { client, token } - } - - pub async fn update_flow_types(&mut self, flow_types: Vec) { - let request = Request::from_parts( - get_authorization_metadata(&self.token), - Extensions::new(), - SagittariusFlowTypeUpdateRequest { flow_types }, - ); - - match self.client.update(request).await { - Ok(response) => { - info(format!( - "Successfully transferred FlowTypes. Did Sagittarius updated them? {:?}", - &response.into_inner().success - )); - } - Err(err) => { - error_without_trace(format!("Failed to update FlowTypes: {:?}", err)); - } - }; - } -} diff --git a/crates/cli/src/command/push/function_client_impl.rs b/crates/cli/src/command/push/function_client_impl.rs deleted file mode 100644 index ec40e308..00000000 --- a/crates/cli/src/command/push/function_client_impl.rs +++ /dev/null @@ -1,56 +0,0 @@ -use crate::command::push::auth::get_authorization_metadata; -use crate::formatter::error_without_trace; -use crate::formatter::info; -use tonic::Extensions; -use tonic::Request; -use tonic::transport::Channel; -use tucana::sagittarius::RuntimeFunctionDefinitionUpdateRequest as SagittariusRuntimeFunctionUpdateRequest; -use tucana::sagittarius::runtime_function_definition_service_client::RuntimeFunctionDefinitionServiceClient; -use tucana::shared::RuntimeFunctionDefinition; - -pub struct SagittariusRuntimeFunctionServiceClient { - client: RuntimeFunctionDefinitionServiceClient, - token: String, -} - -impl SagittariusRuntimeFunctionServiceClient { - pub async fn new(sagittarius_url: String, token: String) -> Self { - let client = match RuntimeFunctionDefinitionServiceClient::connect(sagittarius_url).await { - Ok(client) => { - info(String::from( - "Successfully connected to Sagittarius RuntimeFunction Endpoint!", - )); - client - } - Err(err) => panic!( - "Failed to connect to Sagittarius (RuntimeFunction Endpoint): {:?}", - err - ), - }; - - Self { client, token } - } - - pub async fn update_runtime_function_definitions( - &mut self, - runtime_functions: Vec, - ) { - let request = Request::from_parts( - get_authorization_metadata(&self.token), - Extensions::new(), - SagittariusRuntimeFunctionUpdateRequest { runtime_functions }, - ); - - match self.client.update(request).await { - Ok(response) => { - info(format!( - "Successfully transferred RuntimeFunctions. Did Sagittarius updated them? {:?}", - &response.into_inner().success - )); - } - Err(err) => { - error_without_trace(format!("Failed to update RuntimeFunctions: {:?}", err)); - } - }; - } -} diff --git a/crates/cli/src/command/push/mod.rs b/crates/cli/src/command/push/mod.rs index a8bec221..72e61822 100644 --- a/crates/cli/src/command/push/mod.rs +++ b/crates/cli/src/command/push/mod.rs @@ -1,12 +1,34 @@ -use crate::analyser::core::Analyser; -use crate::command::push::data_type_client_impl::SagittariusDataTypeServiceClient; -use crate::command::push::flow_type_client_impl::SagittariusFlowTypeServiceClient; -use crate::command::push::function_client_impl::SagittariusRuntimeFunctionServiceClient; +use tucana::shared::Module; + +use crate::{ + analyser::core::Analyser, command::parse_errors::fail_on_parser_errors, + command::push::module_service_client_impl::SagittariusModuleServiceClient, parser::Parser, +}; mod auth; -mod data_type_client_impl; -mod flow_type_client_impl; -mod function_client_impl; +mod module_service_client_impl; + +fn apply_version_to_module(mut module: Module, version: String) -> Module { + module.version = version.clone(); + + for data_type in &mut module.definition_data_types { + data_type.version = version.clone(); + } + for flow_type in &mut module.flow_types { + flow_type.version = version.clone(); + } + for runtime_flow_type in &mut module.runtime_flow_types { + runtime_flow_type.version = version.clone(); + } + for function in &mut module.function_definitions { + function.version = version.clone(); + } + for runtime_function in &mut module.runtime_function_definitions { + runtime_function.version = version.clone(); + } + + module +} pub async fn push( token: String, @@ -22,51 +44,25 @@ pub async fn push( }; let mut analyzer = Analyser::new(dir_path.as_str()); - let mut data_type_client = - SagittariusDataTypeServiceClient::new(url.clone(), token.clone()).await; - let mut flow_type_client = - SagittariusFlowTypeServiceClient::new(url.clone(), token.clone()).await; - let mut function_client = SagittariusRuntimeFunctionServiceClient::new(url, token).await; - analyzer.report(false, true); - data_type_client - .update_data_types( - analyzer - .data_types - .iter() - .map(|d| { - let mut def = d.definition_data_type.clone(); - def.version = version.clone(); - return def; - }) - .collect(), - ) - .await; - flow_type_client - .update_flow_types( - analyzer - .flow_types - .iter() - .map(|d| { - let mut def = d.flow_type.clone(); - def.version = version.clone(); - return def; - }) - .collect(), - ) - .await; - function_client - .update_runtime_function_definitions( - analyzer - .functions - .iter() - .map(|d| { - let mut def = d.function.clone(); - def.version = version.clone(); - return def; - }) - .collect(), - ) - .await; + let parser = match Parser::from_path(dir_path.as_str()) { + Some(parser) => parser, + None => { + panic!("Error reading definitions"); + } + }; + fail_on_parser_errors(&parser); + + let mods = parser + .modules + .into_iter() + .map(|definition_module| { + let module = definition_module.into_module(); + apply_version_to_module(module, version.clone()) + }) + .collect::>(); + + let mut client = SagittariusModuleServiceClient::new(url, token).await; + client.update(mods).await; } diff --git a/crates/cli/src/command/push/data_type_client_impl.rs b/crates/cli/src/command/push/module_service_client_impl.rs similarity index 60% rename from crates/cli/src/command/push/data_type_client_impl.rs rename to crates/cli/src/command/push/module_service_client_impl.rs index 09bd1b7c..13ff08d3 100644 --- a/crates/cli/src/command/push/data_type_client_impl.rs +++ b/crates/cli/src/command/push/module_service_client_impl.rs @@ -1,40 +1,37 @@ use crate::command::push::auth::get_authorization_metadata; use crate::formatter::{error_without_trace, info}; use tonic::{Extensions, Request, transport::Channel}; -use tucana::sagittarius::{ - DataTypeUpdateRequest as SagittariusDataTypeUpdateRequest, - data_type_service_client::DataTypeServiceClient, -}; -use tucana::shared::DefinitionDataType; +use tucana::sagittarius::ModuleUpdateRequest; +use tucana::sagittarius::module_service_client::ModuleServiceClient; +use tucana::shared::Module; -pub struct SagittariusDataTypeServiceClient { - client: DataTypeServiceClient, +pub struct SagittariusModuleServiceClient { + client: ModuleServiceClient, token: String, } -impl SagittariusDataTypeServiceClient { +impl SagittariusModuleServiceClient { pub async fn new(sagittarius_url: String, token: String) -> Self { - let client = match DataTypeServiceClient::connect(sagittarius_url).await { + let client = match ModuleServiceClient::connect(sagittarius_url).await { Ok(client) => { info(String::from( - "Successfully connected to Sagittarius DataType Endpoint!", + "Successfully connected to Sagittarius Module Service Endpoint!", )); client } Err(err) => panic!( - "Failed to connect to Sagittarius (DataType Endpoint): {:?}", + "Failed to connect to Sagittarius (Module Service Endpoint): {:?}", err ), }; - Self { client, token } } - pub async fn update_data_types(&mut self, data_types: Vec) { + pub async fn update(&mut self, modules: Vec) { let request = Request::from_parts( get_authorization_metadata(&self.token), Extensions::new(), - SagittariusDataTypeUpdateRequest { data_types }, + ModuleUpdateRequest { modules }, ); match self.client.update(request).await { diff --git a/crates/cli/src/command/report.rs b/crates/cli/src/command/report.rs index 17f64f80..ead8b601 100644 --- a/crates/cli/src/command/report.rs +++ b/crates/cli/src/command/report.rs @@ -1,4 +1,7 @@ +use tucana::shared::Module; + use crate::analyser::core::Analyser; +use crate::command::parse_errors::fail_on_parser_errors; use crate::formatter::{success, success_table}; use crate::parser::Parser; use crate::table::summary_table; @@ -12,30 +15,36 @@ pub fn report_errors(path: Option) { panic!("Error reading definitions"); } }; + fail_on_parser_errors(&parser); let mut analyser = Analyser::new(dir_path.as_str()); analyser.report(true, true); + let mods: &Vec = &parser + .modules + .clone() + .into_iter() + .map(|x| x.into_module()) + .collect(); - let rows = summary_table(&parser.features); + let rows = summary_table(mods); success_table(rows); success(format!( - "Defined a total of {} Features with {} FlowTypes {} DataTypes and {} Functions!", - parser.features.iter().len(), - parser - .features - .iter() - .map(|f| f.flow_types.len()) + "Defined a total of {} Modules with {} RuntimeFlowTypes, {} FlowTypes, {} DataTypes, {} RuntimeFunctions, {} Functions and {} Module Configs!", + mods.iter().len(), + mods.iter() + .map(|f| f.runtime_flow_types.len()) + .sum::(), + mods.iter().map(|f| f.flow_types.len()).sum::(), + mods.iter() + .map(|f| f.definition_data_types.len()) + .sum::(), + mods.iter() + .map(|f| f.runtime_function_definitions.len()) .sum::(), - parser - .features - .iter() - .map(|f| f.data_types.len()) + mods.iter() + .map(|f| f.function_definitions.len()) .sum::(), - parser - .features - .iter() - .map(|f| f.runtime_functions.len()) - .sum::() + mods.iter().map(|f| f.configurations.len()).sum::(), )) } diff --git a/crates/cli/src/command/search.rs b/crates/cli/src/command/search.rs index 223a1abc..38b0e21f 100644 --- a/crates/cli/src/command/search.rs +++ b/crates/cli/src/command/search.rs @@ -1,3 +1,4 @@ +use crate::command::parse_errors::fail_on_parser_errors; use crate::formatter::{info, success}; use crate::parser::Parser; use colored::Colorize; @@ -11,6 +12,7 @@ pub fn search_definition(name: String, path: Option) { panic!("Error reading definitions"); } }; + fail_on_parser_errors(&parser); search_and_display_definitions(&name, &parser); } @@ -20,7 +22,29 @@ fn search_and_display_definitions(search_name: &str, parser: &Parser) { let mut total_matches = 0; info(format!("Searching for '{}'", search_name)); - for feature in &parser.features { + for feature in &parser.modules { + // Search RuntimeFlowTypes + for flow_type in &feature.runtime_flow_types { + if flow_type.identifier == search_name { + total_matches += 1; + if !found_any { + found_any = true; + } + + info(String::from("Found flow_type:\n")); + match serde_json::to_string_pretty(flow_type) { + Ok(json) => { + let mut index = 0; + for line in json.lines() { + index += 1; + println!("{}: {}", index, line.bright_cyan()); + } + } + Err(_) => println!("{}", "Error serializing FlowType".red()), + } + } + } + // Search FlowTypes for flow_type in &feature.flow_types { if flow_type.identifier == search_name { @@ -86,6 +110,50 @@ fn search_and_display_definitions(search_name: &str, parser: &Parser) { } } } + + // Search RuntimeFunctions + for runtime_func in &feature.functions { + if runtime_func.runtime_name == search_name { + total_matches += 1; + if !found_any { + found_any = true; + } + + info(String::from("Found runtime_function_definition:\n")); + match serde_json::to_string_pretty(runtime_func) { + Ok(json) => { + let mut index = 0; + for line in json.lines() { + index += 1; + println!("{}: {}", index, line.bright_cyan()); + } + } + Err(_) => println!("{}", "Error serializing RuntimeFunction".red()), + } + } + } + + // Search Module Configurations + for runtime_func in &feature.module_configs { + if runtime_func.identifier == search_name { + total_matches += 1; + if !found_any { + found_any = true; + } + + info(String::from("Found runtime_function_definition:\n")); + match serde_json::to_string_pretty(runtime_func) { + Ok(json) => { + let mut index = 0; + for line in json.lines() { + index += 1; + println!("{}: {}", index, line.bright_cyan()); + } + } + Err(_) => println!("{}", "Error serializing RuntimeFunction".red()), + } + } + } } if !found_any { diff --git a/crates/cli/src/command/search_module.rs b/crates/cli/src/command/search_module.rs new file mode 100644 index 00000000..48ebe94b --- /dev/null +++ b/crates/cli/src/command/search_module.rs @@ -0,0 +1,126 @@ +use tucana::shared::Module; + +use crate::analyser::core::Analyser; +use crate::command::parse_errors::fail_on_parser_errors; +use crate::formatter::{success, success_table}; +use crate::parser::{DefinitionModule, Parser}; +use crate::table::{module_table, summary_table}; + +pub fn search_module(name: Option, path: Option) { + let dir_path = path.unwrap_or_else(|| "./definitions".to_string()); + + let parser = match Parser::from_path(dir_path.as_str()) { + Some(reader) => reader, + None => { + panic!("Error reading definitions"); + } + }; + fail_on_parser_errors(&parser); + + let mut analyser = Analyser::new(dir_path.as_str()); + analyser.report(true, true); + + let modules = match name { + None => parser.modules.clone(), + Some(feature_name) => parser + .modules + .iter() + .filter(|m| m.config.identifier.to_lowercase() == feature_name.to_lowercase()) + .cloned() + .collect::>(), + }; + + for module in &modules { + let ( + runtime_flow_type_rows, + flow_type_rows, + data_type_rows, + runtime_function_rows, + function_rows, + configuration_rows, + ) = module_table(&module.clone().into_module()); + + if !runtime_flow_type_rows.is_empty() { + success(format!( + "The module (`{}`) detected {} runtime_flow_types.", + module.config.identifier, + runtime_flow_type_rows.len() + )); + success_table(runtime_flow_type_rows) + } + + if !flow_type_rows.is_empty() { + success(format!( + "The module (`{}`) detected {} flow_types.", + module.config.identifier, + flow_type_rows.len() + )); + success_table(flow_type_rows) + } + + if !data_type_rows.is_empty() { + success(format!( + "The module (`{}`) detected {} data_types.", + module.config.identifier, + data_type_rows.len() + )); + success_table(data_type_rows) + } + + if !runtime_function_rows.is_empty() { + success(format!( + "The module (`{}`) detected {} runtime_function_definition.", + module.config.identifier, + runtime_function_rows.len() + )); + success_table(runtime_function_rows) + } + + if !function_rows.is_empty() { + success(format!( + "The module (`{}`) detected {} function_definition.", + module.config.identifier, + function_rows.len() + )); + success_table(function_rows) + } + + if !configuration_rows.is_empty() { + success(format!( + "The module (`{}`) detected {} module_configurations.", + module.config.identifier, + configuration_rows.len() + )); + success_table(configuration_rows) + } + } + + let mods: &Vec = &parser + .modules + .clone() + .into_iter() + .map(|x| x.into_module()) + .collect(); + + let summary = summary_table(mods); + success_table(summary); + + success(format!( + "Defined a total of {} Modules with {} RuntimeFlowTypes, {} FlowTypes, {} DataTypes, {} RuntimeFunctions, {} Functions and {} Module Configs!", + mods.iter().len(), + mods.iter() + .map(|f| f.runtime_flow_types.len()) + .sum::(), + mods.iter().map(|f| f.flow_types.len()).sum::(), + mods.iter() + .map(|f| f.definition_data_types.len()) + .sum::(), + mods.iter() + .map(|f| f.runtime_function_definitions.len()) + .sum::(), + mods.iter() + .map(|f| f.function_definitions.len()) + .sum::(), + mods.iter().map(|f| f.configurations.len()).sum::(), + )) +} diff --git a/crates/cli/src/command/watch.rs b/crates/cli/src/command/watch.rs index 3eb8f4f9..48a11ae1 100644 --- a/crates/cli/src/command/watch.rs +++ b/crates/cli/src/command/watch.rs @@ -39,15 +39,13 @@ pub async fn watch_for_changes(path: Option, with_warning: bool) { last_run = Instant::now(); } } - EventKind::Remove(_) => { - if last_run.elapsed() > Duration::from_millis(500) { - default(String::from( - "\n\n\n--------------------------------------------------------------------------\n\n", - )); - info(String::from("Change detected! Regenerating report...")); - Analyser::new(dir_path.as_str()).report(false, with_warning); - last_run = Instant::now(); - } + EventKind::Remove(_) if last_run.elapsed() > Duration::from_millis(500) => { + default(String::from( + "\n\n\n--------------------------------------------------------------------------\n\n", + )); + info(String::from("Change detected! Regenerating report...")); + Analyser::new(dir_path.as_str()).report(false, with_warning); + last_run = Instant::now(); } _ => {} } diff --git a/crates/cli/src/diagnostics/diagnose.rs b/crates/cli/src/diagnostics/diagnose.rs index a127842b..b5c2bf3f 100644 --- a/crates/cli/src/diagnostics/diagnose.rs +++ b/crates/cli/src/diagnostics/diagnose.rs @@ -2,7 +2,7 @@ use crate::diagnostics::kinds::DiagnosticKind; use crate::diagnostics::kinds::DiagnosticKind::*; use crate::diagnostics::severity::Severity; use crate::formatter::{error, warning}; -use crate::parser::Meta; +use crate::reader::Meta; use std::path::Path; #[derive(Debug, Clone)] @@ -41,6 +41,13 @@ impl Diagnose { ), &path, ), + DuplicateRuntimeFlowTypeIdentifier { identifier } => error( + format!( + "The runtime_flow_type `{}` is already defined resulting in a duplicate!", + identifier + ), + &path, + ), DuplicateRuntimeFunctionIdentifier { identifier } => error( format!( "The runtime_function `{}` is already defined resulting in a duplicate!", @@ -48,6 +55,20 @@ impl Diagnose { ), &path, ), + DuplicateFunctionIdentifier { identifier } => error( + format!( + "The function `{}` is already defined resulting in a duplicate!", + identifier + ), + &path, + ), + DuplicateModuleConfigurationIdentifier { identifier } => error( + format!( + "The module_configuration `{}` is already defined resulting in a duplicate!", + identifier + ), + &path, + ), DuplicateRuntimeParameterIdentifier { identifier } => error( format!( "The runtime_parameter `{}` is already defined resulting in a duplicate!", diff --git a/crates/cli/src/diagnostics/kinds.rs b/crates/cli/src/diagnostics/kinds.rs index 6e5a6aba..3195ad0b 100644 --- a/crates/cli/src/diagnostics/kinds.rs +++ b/crates/cli/src/diagnostics/kinds.rs @@ -5,7 +5,10 @@ pub enum DiagnosticKind { DeserializationError { description: String }, DuplicateDataTypeIdentifier { identifier: String }, DuplicateFlowTypeIdentifier { identifier: String }, + DuplicateRuntimeFlowTypeIdentifier { identifier: String }, DuplicateRuntimeFunctionIdentifier { identifier: String }, + DuplicateFunctionIdentifier { identifier: String }, + DuplicateModuleConfigurationIdentifier { identifier: String }, DuplicateRuntimeParameterIdentifier { identifier: String }, UndefinedDataTypeIdentifier { identifier: String }, NullField { field_name: String }, @@ -20,7 +23,10 @@ impl DiagnosticKind { DeserializationError { .. } | DuplicateDataTypeIdentifier { .. } | DuplicateFlowTypeIdentifier { .. } + | DuplicateRuntimeFlowTypeIdentifier { .. } | DuplicateRuntimeFunctionIdentifier { .. } + | DuplicateFunctionIdentifier { .. } + | DuplicateModuleConfigurationIdentifier { .. } | DuplicateRuntimeParameterIdentifier { .. } | UndefinedDataTypeIdentifier { .. } | NullField { .. } diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index aca796f4..c79a87be 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -2,6 +2,7 @@ use clap::{Parser as ClapParser, Subcommand}; pub mod diagnostics; pub mod parser; +pub mod reader; mod analyser; mod command; @@ -26,8 +27,8 @@ enum Commands { #[arg(short, long)] path: Option, }, - /// Generate a report for a or all feature(s). - Feature { + /// Generate a report for a or all module(s). + Module { /// Optional name of the definition set. #[arg(short, long)] name: Option, @@ -81,7 +82,7 @@ async fn main() { match cli.command { Commands::Report { path } => command::report::report_errors(path), - Commands::Feature { name, path } => command::feature::search_feature(name, path), + Commands::Module { name, path } => command::search_module::search_module(name, path), Commands::Search { name, path } => command::search::search_definition(name, path), Commands::Download { tag, features } => { command::download::handle_download(tag, features).await diff --git a/crates/cli/src/parser.rs b/crates/cli/src/parser.rs index 2cd53691..06c0f48c 100644 --- a/crates/cli/src/parser.rs +++ b/crates/cli/src/parser.rs @@ -1,41 +1,74 @@ -use serde::Serialize; -use std::io::ErrorKind; -use std::{ - fs::{self, DirEntry}, - io::Error, - path::Path, +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; +use tucana::shared::{ + DefinitionDataType, FlowType, FunctionDefinition, Module, ModuleConfigurationDefinition, + RuntimeFlowType, RuntimeFunctionDefinition, Translation, }; -use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; + +use crate::reader::{Meta, MetaType, Reader}; #[derive(Serialize, Clone, Debug)] pub struct DefinitionError { pub definition: String, - pub definition_type: MetaType, + pub definition_type: crate::reader::MetaType, + pub path: String, pub error: String, } #[derive(Debug)] pub struct Parser { - pub features: Vec, + pub modules: Vec, } -#[derive(Serialize, Clone, Debug)] -pub struct Feature { - pub name: String, +#[derive(Serialize, Deserialize, Clone, Debug, Default)] +pub struct ModuleConfiguration { + pub identifier: String, + pub name: Vec, + pub description: Vec, + pub documentation: String, + pub author: String, + pub icon: String, + #[serde(default, skip_serializing_if = "String::is_empty")] + pub version: String, +} + +#[derive(Serialize, Clone, Debug, Default)] +pub struct DefinitionModule { + // Configuration of module `module.json` + pub config: ModuleConfiguration, + // DataTypes of module `/data_types` pub data_types: Vec, + // FlowTypes of module `/flow_types` pub flow_types: Vec, + // RuntimeFlowTypes of module `/runtime_flow_types` + pub runtime_flow_types: Vec, + // Functions of module `/functions` + pub functions: Vec, + // RuntimeFunctions of module `/runtime_functions` pub runtime_functions: Vec, + // Settings of module `/configurations` + pub module_configs: Vec, + + // Errors found while parsing pub errors: Vec, } -impl Feature { - fn new(name: String) -> Self { - Feature { - name, - data_types: Vec::new(), - flow_types: Vec::new(), - runtime_functions: Vec::new(), - errors: Vec::new(), +impl DefinitionModule { + pub fn into_module(self) -> Module { + Module { + identifier: self.config.identifier, + name: self.config.name, + description: self.config.description, + documentation: self.config.documentation, + author: self.config.author, + icon: self.config.icon, + version: self.config.version, + flow_types: self.flow_types, + runtime_flow_types: self.runtime_flow_types, + function_definitions: self.functions, + runtime_function_definitions: self.runtime_functions, + definition_data_types: self.data_types, + configurations: self.module_configs, } } } @@ -48,27 +81,31 @@ impl Parser { } pub fn from_reader(reader: Reader) -> Self { - let mut features: Vec = vec![]; + let mut modules: Vec = vec![]; + let mut module_indices_by_name: HashMap = HashMap::new(); for meta in &reader.meta { - let feature = features.iter_mut().find(|f| f.name == meta.name); - - if let Some(existing) = feature { - Parser::append_meta(existing, meta); + let module_index = if let Some(index) = module_indices_by_name.get(&meta.name) { + *index } else { - let mut new_feature = Feature::new(meta.name.clone()); - Parser::append_meta(&mut new_feature, meta); - features.push(new_feature); - } + let mut new_mod = DefinitionModule::default(); + Parser::append_meta(&mut new_mod, meta); + modules.push(new_mod); + let new_index = modules.len() - 1; + module_indices_by_name.insert(meta.name.clone(), new_index); + continue; + }; + + Parser::append_meta(&mut modules[module_index], meta); } - Parser { features } + Parser { modules } } pub fn extract_identifier(definition: &str, meta_type: MetaType) -> String { let field_name = match meta_type { - MetaType::DataType | MetaType::FlowType => "identifier", - MetaType::RuntimeFunction => "runtime_name", + MetaType::RuntimeFunction | MetaType::Function => "runtime_name", + _ => "identifier", }; // Look for the field pattern: "field_name": "value" or "field_name":"value" @@ -92,7 +129,7 @@ impl Parser { definition.to_string() } - fn append_meta(feature: &mut Feature, meta: &Meta) { + fn append_meta(feature: &mut DefinitionModule, meta: &Meta) { let definition = meta.definition_string.as_str(); match meta.r#type { MetaType::DataType => match serde_json::from_str::(definition) { @@ -100,6 +137,7 @@ impl Parser { Err(err) => feature.errors.push(DefinitionError { definition: Parser::extract_identifier(definition, MetaType::DataType), definition_type: MetaType::DataType, + path: meta.path.clone(), error: err.to_string(), }), }, @@ -108,6 +146,7 @@ impl Parser { Err(err) => feature.errors.push(DefinitionError { definition: Parser::extract_identifier(definition, MetaType::FlowType), definition_type: MetaType::FlowType, + path: meta.path.clone(), error: err.to_string(), }), }, @@ -120,173 +159,59 @@ impl Parser { MetaType::RuntimeFunction, ), definition_type: MetaType::RuntimeFunction, + path: meta.path.clone(), error: err.to_string(), }), } } - } - } -} - -#[derive(Serialize, Debug, Clone, Copy)] -pub enum MetaType { - FlowType, - DataType, - RuntimeFunction, -} - -impl std::fmt::Display for MetaType { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - MetaType::FlowType => write!(f, "FlowType"), - MetaType::DataType => write!(f, "DataType"), - MetaType::RuntimeFunction => write!(f, "RuntimeFunction"), - } - } -} - -pub struct Reader { - pub meta: Vec, -} - -#[derive(Clone, Debug)] -pub struct Meta { - pub name: String, - pub r#type: MetaType, - pub definition_string: String, - pub path: String, -} - -impl Meta { - pub fn read_from_file

(name: String, r#type: MetaType, file_path: P) -> Result - where - P: AsRef, - { - let path = match file_path.as_ref().to_str() { - Some(path) => path, - None => return Err(Error::new(ErrorKind::InvalidInput, "Invalid path")), - }; - - if !path.ends_with("json") { - return Err(Error::new( - ErrorKind::InvalidInput, - format!( - "File {} does not end with .json", - file_path.as_ref().display() - ), - )); - } - - let content = match fs::read_to_string(&file_path) { - Ok(content) => content, - Err(err) => { - println!("Error reading file: {err}"); - return Err(err); + MetaType::RuntimeFlowType => { + match serde_json::from_str::(definition) { + Ok(v) => feature.runtime_flow_types.push(v), + Err(err) => feature.errors.push(DefinitionError { + definition: Parser::extract_identifier( + definition, + MetaType::RuntimeFlowType, + ), + definition_type: MetaType::RuntimeFlowType, + path: meta.path.clone(), + error: err.to_string(), + }), + } } - }; - - Ok(Meta { - name, - r#type, - definition_string: content, - path: path.to_string(), - }) - } -} - -/// Reader -/// -/// Expecting the file system to look like: -/// - -/// - -/// - -/// - -/// - -/// - -/// - -/// - -/// - -impl Reader { - pub fn from_path(path: &str) -> Option { - let mut result: Vec = vec![]; - - // Reading the path folder - for feature_path in fs::read_dir(path).unwrap() { - let feature_path_result = match feature_path { - Ok(path) => path, - Err(_) => continue, - }; - - let feature_name = match get_file_name(&feature_path_result) { - Some(file_name) => file_name, - None => continue, - }; - - // Reading the feature folder - for type_path in fs::read_dir(feature_path_result.path()).unwrap() { - let type_path_result = match type_path { - Ok(path) => path, - Err(_) => continue, - }; - - let meta_type = match get_file_name(&type_path_result) { - Some(name) => match name.as_str() { - "flow_type" => MetaType::FlowType, - "data_type" => MetaType::DataType, - "runtime_definition" => MetaType::RuntimeFunction, - _ => continue, - }, - None => continue, - }; - - // Reading the type folder - for definition_path in fs::read_dir(type_path_result.path()).unwrap() { - let definition_path_result = match definition_path { - Ok(path) => path, - Err(_) => continue, - }; - - if definition_path_result.file_type().unwrap().is_file() { - let meta = Meta::read_from_file( - feature_name.clone(), - meta_type, - definition_path_result.path(), - ); - - if let Ok(meta_result) = meta { - result.push(meta_result); - } - } else { - for sub_definition_path in - fs::read_dir(definition_path_result.path()).unwrap() - { - let sub_definition_path_result = match sub_definition_path { - Ok(path) => path, - Err(_) => continue, - }; - - let meta = Meta::read_from_file( - feature_name.clone(), - meta_type, - sub_definition_path_result.path(), - ); - - if let Ok(meta_result) = meta { - result.push(meta_result); - } - } - } + MetaType::Function => match serde_json::from_str::(definition) { + Ok(v) => feature.functions.push(v), + Err(err) => feature.errors.push(DefinitionError { + definition: Parser::extract_identifier(definition, MetaType::Function), + definition_type: MetaType::Function, + path: meta.path.clone(), + error: err.to_string(), + }), + }, + MetaType::Configs => { + match serde_json::from_str::(definition) { + Ok(v) => feature.module_configs.push(v), + Err(err) => feature.errors.push(DefinitionError { + definition: Parser::extract_identifier(definition, MetaType::Configs), + definition_type: MetaType::Configs, + path: meta.path.clone(), + error: err.to_string(), + }), + } + } + MetaType::ModuleDefinition => { + match serde_json::from_str::(definition) { + Ok(v) => feature.config = v, + Err(err) => feature.errors.push(DefinitionError { + definition: Parser::extract_identifier( + definition, + MetaType::ModuleDefinition, + ), + definition_type: MetaType::ModuleDefinition, + path: meta.path.clone(), + error: err.to_string(), + }), } } } - - Some(Reader { meta: result }) } } - -fn get_file_name(entry: &DirEntry) -> Option { - entry - .file_name() - .to_str() - .map(|file_name| file_name.to_string()) -} diff --git a/crates/cli/src/reader.rs b/crates/cli/src/reader.rs new file mode 100644 index 00000000..21b056aa --- /dev/null +++ b/crates/cli/src/reader.rs @@ -0,0 +1,297 @@ +use std::{ + fs::{self, DirEntry}, + io::{Error, ErrorKind}, + path::{Path, PathBuf}, +}; + +use serde::Serialize; + +#[derive(Serialize, Debug, Clone, Copy)] +pub enum MetaType { + ModuleDefinition, + FlowType, + RuntimeFlowType, + DataType, + RuntimeFunction, + Function, + Configs, +} + +impl std::fmt::Display for MetaType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + MetaType::FlowType => write!(f, "FlowType"), + MetaType::DataType => write!(f, "DataType"), + MetaType::RuntimeFunction => write!(f, "RuntimeFunction"), + MetaType::RuntimeFlowType => write!(f, "RuntimeFlowType"), + MetaType::Function => write!(f, "Function"), + MetaType::Configs => write!(f, "Configs"), + MetaType::ModuleDefinition => write!(f, "ModuleDefinition"), + } + } +} + +pub struct Reader { + pub meta: Vec, +} + +#[derive(Clone, Debug)] +pub struct Meta { + pub name: String, + pub r#type: MetaType, + pub definition_string: String, + pub path: String, +} + +impl Meta { + pub fn read_from_file

(name: String, r#type: MetaType, file_path: P) -> Result + where + P: AsRef, + { + let path = match file_path.as_ref().to_str() { + Some(path) => path, + None => return Err(Error::new(ErrorKind::InvalidInput, "Invalid path")), + }; + + if !path.ends_with("json") { + return Err(Error::new( + ErrorKind::InvalidInput, + format!( + "File {} does not end with .json", + file_path.as_ref().display() + ), + )); + } + + let content = match fs::read_to_string(&file_path) { + Ok(content) => content, + Err(err) => { + println!("Error reading file: {err}"); + return Err(err); + } + }; + + Ok(Meta { + name, + r#type, + definition_string: content, + path: path.to_string(), + }) + } +} + +/// Reader +/// +/// Expecting the file system to look like: +/// - +/// - +/// - +/// - +/// - +/// - module.json +/// - +/// - +/// - +/// - +/// - module.json +impl Reader { + pub fn from_path(path: &str) -> Option { + let mut result: Vec = vec![]; + let root = Path::new(path); + + if !root.exists() || !root.is_dir() { + return None; + } + + for module_path in find_module_directories(root) { + let module_name = module_name_from_paths(root, &module_path); + + // Handle direct module definition file. + let module_definition_file = module_path.join("module.json"); + if module_definition_file.is_file() + && let Ok(meta_result) = Meta::read_from_file( + module_name.clone(), + MetaType::ModuleDefinition, + module_definition_file, + ) + { + result.push(meta_result); + } + + // Handle all typed definition directories. + let type_entries = match fs::read_dir(&module_path) { + Ok(entries) => entries, + Err(_) => continue, + }; + + for type_path in type_entries { + let type_path_result = match type_path { + Ok(path) => path, + Err(_) => continue, + }; + + let file_type = match type_path_result.file_type() { + Ok(file_type) => file_type, + Err(_) => continue, + }; + + if !file_type.is_dir() { + continue; + } + + let meta_type = match get_file_name(&type_path_result) { + Some(name) => match meta_type_from_dir_name(name.as_str()) { + Some(meta_type) => meta_type, + None => continue, + }, + None => continue, + }; + + let mut definition_files = vec![]; + collect_json_files_recursively(type_path_result.path(), &mut definition_files); + definition_files.sort(); + + for definition_file in definition_files { + let meta = + Meta::read_from_file(module_name.clone(), meta_type, definition_file); + + if let Ok(meta_result) = meta { + result.push(meta_result); + } + } + } + } + + Some(Reader { meta: result }) + } +} + +fn find_module_directories(root: &Path) -> Vec { + let mut module_directories = vec![]; + let mut stack = vec![root.to_path_buf()]; + + while let Some(current) = stack.pop() { + let entries = match fs::read_dir(¤t) { + Ok(entries) => entries, + Err(_) => continue, + }; + + let mut sub_directories = vec![]; + let mut looks_like_module = false; + + for entry in entries { + let entry = match entry { + Ok(entry) => entry, + Err(_) => continue, + }; + + let entry_type = match entry.file_type() { + Ok(entry_type) => entry_type, + Err(_) => continue, + }; + + if entry_type.is_file() { + if entry.file_name().to_str() == Some("module.json") { + looks_like_module = true; + } + continue; + } + + if !entry_type.is_dir() { + continue; + } + + let directory_name = match get_file_name(&entry) { + Some(name) => name, + None => continue, + }; + + if meta_type_from_dir_name(directory_name.as_str()).is_some() { + looks_like_module = true; + } else { + sub_directories.push(entry.path()); + } + } + + if looks_like_module { + module_directories.push(current); + } else { + stack.extend(sub_directories); + } + } + + module_directories.sort(); + module_directories +} + +fn module_name_from_paths(root: &Path, module_path: &Path) -> String { + let relative = module_path + .strip_prefix(root) + .ok() + .and_then(|p| p.to_str()) + .unwrap_or_default(); + + if relative.is_empty() || relative == "." { + module_path + .file_name() + .and_then(|n| n.to_str()) + .unwrap_or("module") + .to_string() + } else { + relative.to_string() + } +} + +fn meta_type_from_dir_name(name: &str) -> Option { + match name { + "runtime_flow_type" | "runtime_flow_types" => Some(MetaType::RuntimeFlowType), + "flow_type" | "flow_types" => Some(MetaType::FlowType), + "data_type" | "data_types" => Some(MetaType::DataType), + "runtime_functions" => Some(MetaType::RuntimeFunction), + "functions" => Some(MetaType::Function), + "configuration" | "configurations" => Some(MetaType::Configs), + "module" => Some(MetaType::ModuleDefinition), + _ => None, + } +} + +fn collect_json_files_recursively(path: PathBuf, result: &mut Vec) { + let dir_entries = match fs::read_dir(path) { + Ok(entries) => entries, + Err(_) => return, + }; + + for entry in dir_entries { + let entry = match entry { + Ok(entry) => entry, + Err(_) => continue, + }; + + let file_type = match entry.file_type() { + Ok(file_type) => file_type, + Err(_) => continue, + }; + + let entry_path = entry.path(); + if file_type.is_file() { + let is_json = entry_path + .extension() + .and_then(|ext| ext.to_str()) + .map(|ext| ext.eq_ignore_ascii_case("json")) + .unwrap_or(false); + + if is_json { + result.push(entry_path); + } + } else if file_type.is_dir() { + collect_json_files_recursively(entry_path, result); + } + } +} + +fn get_file_name(entry: &DirEntry) -> Option { + entry + .file_name() + .to_str() + .map(|file_name| file_name.to_string()) +} diff --git a/crates/cli/src/table.rs b/crates/cli/src/table.rs index 09a28d9e..c817a9c1 100644 --- a/crates/cli/src/table.rs +++ b/crates/cli/src/table.rs @@ -1,6 +1,16 @@ -use crate::parser::Feature; use tabled::Tabled; -use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; +use tucana::shared::{ + DefinitionDataType, FlowType, FunctionDefinition, Module, ModuleConfigurationDefinition, + RuntimeFlowType, RuntimeFunctionDefinition, +}; + +#[derive(Tabled)] +pub struct RuntimeFlowTypeRow { + #[tabled(rename = "#")] + index: usize, + #[tabled(rename = "Identifier")] + identifier: String, +} #[derive(Tabled)] pub struct FlowTypeRow { @@ -27,21 +37,62 @@ pub struct RuntimeFunctionRow { } #[derive(Tabled)] -pub struct FeatureSummaryRow { - #[tabled(rename = "Feature")] - feature_name: String, +pub struct FunctionRow { + #[tabled(rename = "#")] + index: usize, + #[tabled(rename = "Runtime Name")] + runtime_name: String, +} + +#[derive(Tabled)] +pub struct ConfigurationRow { + #[tabled(rename = "#")] + index: usize, + #[tabled(rename = "Runtime Name")] + identifier: String, +} + +#[derive(Tabled)] +pub struct ModuleSummaryRow { + #[tabled(rename = "Module")] + identifier: String, + #[tabled(rename = "Runtime Flow Types")] + runtime_flow_types: usize, #[tabled(rename = "Flow Types")] flow_types: usize, #[tabled(rename = "Data Types")] data_types: usize, #[tabled(rename = "Runtime Functions")] runtime_functions: usize, + #[tabled(rename = "Functions")] + functions: usize, + #[tabled(rename = "Module Configurations")] + configurations: usize, } -pub fn feature_table( - feature: &Feature, -) -> (Vec, Vec, Vec) { - let flow_type_rows: Vec = feature +pub fn module_table( + module: &Module, +) -> ( + Vec, + Vec, + Vec, + Vec, + Vec, + Vec, +) { + let runtime_flow_type_rows: Vec = module + .runtime_flow_types + .iter() + .enumerate() + .map( + |(i, RuntimeFlowType { identifier, .. })| RuntimeFlowTypeRow { + index: i + 1, + identifier: identifier.clone(), + }, + ) + .collect(); + + let flow_type_rows: Vec = module .flow_types .iter() .enumerate() @@ -51,8 +102,8 @@ pub fn feature_table( }) .collect(); - let data_type_rows: Vec = feature - .data_types + let data_type_rows: Vec = module + .definition_data_types .iter() .enumerate() .map(|(i, DefinitionDataType { identifier, .. })| DataTypeRow { @@ -61,8 +112,8 @@ pub fn feature_table( }) .collect(); - let runtime_function_rows: Vec = feature - .runtime_functions + let runtime_function_rows: Vec = module + .runtime_function_definitions .iter() .enumerate() .map( @@ -73,17 +124,49 @@ pub fn feature_table( ) .collect(); - (flow_type_rows, data_type_rows, runtime_function_rows) + let function_rows: Vec = module + .function_definitions + .iter() + .enumerate() + .map(|(i, FunctionDefinition { runtime_name, .. })| FunctionRow { + index: i + 1, + runtime_name: runtime_name.clone(), + }) + .collect(); + + let configuration_rows: Vec = module + .configurations + .iter() + .enumerate() + .map( + |(i, ModuleConfigurationDefinition { identifier, .. })| ConfigurationRow { + index: i + 1, + identifier: identifier.clone(), + }, + ) + .collect(); + + ( + runtime_flow_type_rows, + flow_type_rows, + data_type_rows, + runtime_function_rows, + function_rows, + configuration_rows, + ) } -pub fn summary_table(features: &[Feature]) -> Vec { - features +pub fn summary_table(modules: &[Module]) -> Vec { + modules .iter() - .map(|feature| FeatureSummaryRow { - feature_name: feature.name.clone(), - flow_types: feature.flow_types.len(), - data_types: feature.data_types.len(), - runtime_functions: feature.runtime_functions.len(), + .map(|module| ModuleSummaryRow { + identifier: module.identifier.clone(), + runtime_flow_types: module.runtime_flow_types.len(), + flow_types: module.flow_types.len(), + data_types: module.definition_data_types.len(), + runtime_functions: module.runtime_function_definitions.len(), + functions: module.function_definitions.len(), + configurations: module.configurations.len(), }) .collect() } diff --git a/definitions/cron/flow_types/cron.proto.json b/definitions/cron/flow_types/cron.proto.json deleted file mode 100644 index 976978ab..00000000 --- a/definitions/cron/flow_types/cron.proto.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "identifier": "CRON", - "settings": [ - { - "identifier": "cronMinute", - "unique": "NONE", - "defaultValue": null, - "name": [ - { - "code": "en-US", - "content": "Minute" - } - ], - "description": [ - { - "code": "en-US", - "content": "Defines the minute when the flow runs (e.g., 0 for on the hour, */5 for every 5 minutes)." - } - ] - }, - { - "identifier": "cronHour", - "unique": "NONE", - "defaultValue": null, - "name": [ - { - "code": "en-US", - "content": "Hour" - } - ], - "description": [ - { - "code": "en-US", - "content": "Defines the hour when the flow runs (e.g., 0 for midnight, 14 for 2 PM)." - } - ] - }, - { - "identifier": "cronDayOfMonth", - "unique": "NONE", - "defaultValue": null, - "name": [ - { - "code": "en-US", - "content": "Day of the Month" - } - ], - "description": [ - { - "code": "en-US", - "content": "Defines the day of the month when the flow runs (e.g., 1 for first day, 15 for mid-month)." - } - ] - }, - { - "identifier": "cronMonth", - "unique": "NONE", - "defaultValue": null, - "name": [ - { - "code": "en-US", - "content": "Month" - } - ], - "description": [ - { - "code": "en-US", - "content": "Defines the month when the flow runs (e.g., 1 for January, 12 for December)." - } - ] - }, - { - "identifier": "cronDayOfWeek", - "unique": "NONE", - "defaultValue": null, - "name": [ - { - "code": "en-US", - "content": "Day of the Week" - } - ], - "description": [ - { - "code": "en-US", - "content": "Defines the weekday when the flow runs (e.g., 0 or SUN for Sunday, MON-FRI for weekdays)." - } - ] - } - ], - "name": [ - { - "code": "en-US", - "content": "Cron Job" - } - ], - "description": [ - { - "code": "en-US", - "content": "A Cron Job is a scheduled task that runs automatically at specified intervals, typically defined using cron expressions. It is commonly used to automate repetitive operations such as data processing, system maintenance, and periodic updates without requiring manual execution." - } - ], - "documentation": [], - "displayIcon": "tabler:file-time", - "alias": [ - { - "code": "en-US", - "content": "cron;code;schedule;timer;clock;flow" - } - ], - "displayMessage": [ - { - "code": "en-US", - "content": "Schedule Job ${cron_code}" - } - ], - "signature": "(cronMinute: CRON_MINUTE, cronHour: CRON_HOUR, cronDayOfMonth: CRON_DAY_OF_MONTH, cronMonth: CRON_MONTH, cronDayOfWeek: CRON_DAY_OF_WEEK): void", - "linkedDataTypeIdentifiers": ["CRON_MINUTE", "CRON_HOUR", "CRON_DAY_OF_MONTH", "CRON_MONTH", "CRON_DAY_OF_WEEK"] -} diff --git a/definitions/cron/data_types/type/cron_day_of_month.proto.json b/definitions/draco_cron/data_types/type/cron_day_of_month.proto.json similarity index 100% rename from definitions/cron/data_types/type/cron_day_of_month.proto.json rename to definitions/draco_cron/data_types/type/cron_day_of_month.proto.json diff --git a/definitions/cron/data_types/type/cron_day_of_week.proto.json b/definitions/draco_cron/data_types/type/cron_day_of_week.proto.json similarity index 100% rename from definitions/cron/data_types/type/cron_day_of_week.proto.json rename to definitions/draco_cron/data_types/type/cron_day_of_week.proto.json diff --git a/definitions/cron/data_types/type/cron_hour.proto.json b/definitions/draco_cron/data_types/type/cron_hour.proto.json similarity index 100% rename from definitions/cron/data_types/type/cron_hour.proto.json rename to definitions/draco_cron/data_types/type/cron_hour.proto.json diff --git a/definitions/cron/data_types/type/cron_minute.proto.json b/definitions/draco_cron/data_types/type/cron_minute.proto.json similarity index 100% rename from definitions/cron/data_types/type/cron_minute.proto.json rename to definitions/draco_cron/data_types/type/cron_minute.proto.json diff --git a/definitions/cron/data_types/type/cron_month.proto.json b/definitions/draco_cron/data_types/type/cron_month.proto.json similarity index 100% rename from definitions/cron/data_types/type/cron_month.proto.json rename to definitions/draco_cron/data_types/type/cron_month.proto.json diff --git a/definitions/draco_cron/module.json b/definitions/draco_cron/module.json new file mode 100644 index 00000000..15d8f5d6 --- /dev/null +++ b/definitions/draco_cron/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "draco-cron", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Scheduled Flow using Cron-Jobs." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:file-time" +} diff --git a/definitions/draco_cron/runtime_flow_types/cron.proto.json b/definitions/draco_cron/runtime_flow_types/cron.proto.json new file mode 100644 index 00000000..67438d60 --- /dev/null +++ b/definitions/draco_cron/runtime_flow_types/cron.proto.json @@ -0,0 +1,124 @@ +{ + "identifier": "CRON", + "name": [ + { + "code": "en-US", + "content": "Cron Job" + } + ], + "description": [ + { + "code": "en-US", + "content": "A Cron Job is a scheduled task that runs automatically at specified intervals, typically defined using cron expressions. It is commonly used to automate repetitive operations such as data processing, system maintenance, and periodic updates without requiring manual execution." + } + ], + "documentation": [], + "displayIcon": "tabler:file-time", + "alias": [ + { + "code": "en-US", + "content": "cron;code;schedule;timer;clock;flow" + } + ], + "displayMessage": [ + { + "code": "en-US", + "content": "Schedule Job ${cron_code}" + } + ], + "signature": "(cronMinute: CRON_MINUTE, cronHour: CRON_HOUR, cronDayOfMonth: CRON_DAY_OF_MONTH, cronMonth: CRON_MONTH, cronDayOfWeek: CRON_DAY_OF_WEEK): void", + "linkedDataTypeIdentifiers": [ + "CRON_MINUTE", + "CRON_HOUR", + "CRON_DAY_OF_MONTH", + "CRON_MONTH", + "CRON_DAY_OF_WEEK" + ], + "runtimeSettings": [ + { + "identifier": "cronMinute", + "unique": "NONE", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Minute" + } + ], + "description": [ + { + "code": "en-US", + "content": "Defines the minute when the flow runs (e.g., 0 for on the hour, */5 for every 5 minutes)." + } + ] + }, + { + "identifier": "cronHour", + "unique": "NONE", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Hour" + } + ], + "description": [ + { + "code": "en-US", + "content": "Defines the hour when the flow runs (e.g., 0 for midnight, 14 for 2 PM)." + } + ] + }, + { + "identifier": "cronDayOfMonth", + "unique": "NONE", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Day of the Month" + } + ], + "description": [ + { + "code": "en-US", + "content": "Defines the day of the month when the flow runs (e.g., 1 for first day, 15 for mid-month)." + } + ] + }, + { + "identifier": "cronMonth", + "unique": "NONE", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Month" + } + ], + "description": [ + { + "code": "en-US", + "content": "Defines the month when the flow runs (e.g., 1 for January, 12 for December)." + } + ] + }, + { + "identifier": "cronDayOfWeek", + "unique": "NONE", + "defaultValue": null, + "name": [ + { + "code": "en-US", + "content": "Day of the Week" + } + ], + "description": [ + { + "code": "en-US", + "content": "Defines the weekday when the flow runs (e.g., 0 or SUN for Sunday, MON-FRI for weekdays)." + } + ] + } + ] +} diff --git a/definitions/rest/data_types/rest_adapter_input.proto.json b/definitions/draco_rest/data_types/rest_adapter_input.proto.json similarity index 100% rename from definitions/rest/data_types/rest_adapter_input.proto.json rename to definitions/draco_rest/data_types/rest_adapter_input.proto.json diff --git a/definitions/draco_rest/module.json b/definitions/draco_rest/module.json new file mode 100644 index 00000000..663b4419 --- /dev/null +++ b/definitions/draco_rest/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "draco-rest", + "name": [ + { + "code": "en-US", + "content": "REST" + } + ], + "description": [ + { + "code": "en-US", + "content": "Trigger Flows unsing a HTTP-Server." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:cube-sent" +} diff --git a/definitions/rest/flow_types/rest.proto.json b/definitions/draco_rest/runtime_flow_types/rest.proto.json similarity index 98% rename from definitions/rest/flow_types/rest.proto.json rename to definitions/draco_rest/runtime_flow_types/rest.proto.json index 92ddeb99..dba7236e 100644 --- a/definitions/rest/flow_types/rest.proto.json +++ b/definitions/draco_rest/runtime_flow_types/rest.proto.json @@ -1,39 +1,5 @@ { "identifier": "REST", - "settings": [ - { - "identifier": "httpURL", - "unique": "PROJECT", - "name": [ - { - "code": "en-US", - "content": "URL" - } - ], - "description": [ - { - "code": "en-US", - "content": "Specifies the HTTP URL endpoint." - } - ] - }, - { - "identifier": "httpMethod", - "unique": "NONE", - "name": [ - { - "code": "en-US", - "content": "Method" - } - ], - "description": [ - { - "code": "en-US", - "content": "Specifies the HTTP request method (e.g., GET, POST, PUT, DELETE)." - } - ] - } - ], "editable": true, "name": [ { @@ -66,5 +32,39 @@ "HTTP_URL", "HTTP_METHOD", "REST_ADAPTER_INPUT" + ], + "runtimeSettings": [ + { + "identifier": "httpURL", + "unique": "PROJECT", + "name": [ + { + "code": "en-US", + "content": "URL" + } + ], + "description": [ + { + "code": "en-US", + "content": "Specifies the HTTP URL endpoint." + } + ] + }, + { + "identifier": "httpMethod", + "unique": "NONE", + "name": [ + { + "code": "en-US", + "content": "Method" + } + ], + "description": [ + { + "code": "en-US", + "content": "Specifies the HTTP request method (e.g., GET, POST, PUT, DELETE)." + } + ] + } ] } diff --git a/definitions/rest/runtime_functions/rest_control_respond.proto.json b/definitions/draco_rest/runtime_functions/rest_control_respond.proto.json similarity index 100% rename from definitions/rest/runtime_functions/rest_control_respond.proto.json rename to definitions/draco_rest/runtime_functions/rest_control_respond.proto.json diff --git a/definitions/standard/runtime_functions/array/array-audit.md b/definitions/standard/runtime_functions/array/array-audit.md deleted file mode 100644 index 201f448b..00000000 --- a/definitions/standard/runtime_functions/array/array-audit.md +++ /dev/null @@ -1,12 +0,0 @@ -# 23.05.2025 - -## Added -- find last - -## Removed -- sortASC -- clear (Doesnt make sense because taurus works with immutable variables) -- replace (Doesnt make sense because taurus works with immutable variables) - -## Renamed: -- sortDEC --> sortReverse diff --git a/definitions/standard/runtime_functions/boolean/boolean-audit.md b/definitions/standard/runtime_functions/boolean/boolean-audit.md deleted file mode 100644 index 8de7a35e..00000000 --- a/definitions/standard/runtime_functions/boolean/boolean-audit.md +++ /dev/null @@ -1,13 +0,0 @@ -# 25.04.2025 - First Iteration - -## Added -- asNumber -- asText -- fromText -- fromNumber -- negate - -# 06.05.2025 - -## Added -- isEqual diff --git a/definitions/standard/runtime_functions/control/control-audit.md b/definitions/standard/runtime_functions/control/control-audit.md deleted file mode 100644 index 727a2a48..00000000 --- a/definitions/standard/runtime_functions/control/control-audit.md +++ /dev/null @@ -1,25 +0,0 @@ -# 05.08.2025 - -## Added -- return - -14.08.2025 - -## Added -- break - -16.10.2025 - -## Renamed -break -> stop - -01.11.2025 - -## Added -- if -- if-else - -# 06.02.2026 - -## Added -- value diff --git a/definitions/standard/runtime_functions/number/number-audit.md b/definitions/standard/runtime_functions/number/number-audit.md deleted file mode 100644 index 1888f0e2..00000000 --- a/definitions/standard/runtime_functions/number/number-audit.md +++ /dev/null @@ -1,73 +0,0 @@ -# 25.04.2025 - First Iteration - -## Added - -- add -- multiply -- subtract -- divide -- modulo -- toPositive -- toNegative -- isNegative -- isPositive -- isGreater -- isLess -- isZero -- square -- exponential -- PI -- EULER -- INFINITY -- roundUp -- roundDown -- round -- squareRoot -- root -- log -- naturalLog -- lim -- parseNumber - -# 27.04.2025 - Second Iteration - -## Dropped: -- lim -- toNegative - -## Renamed: -- toPositive -> abs -- naturalLog -> ln - -## Added: - - min - - max - - negate - - randomNumber - - sin - - cos - - tan - - arcsin - - arccos - - arctan - - sinh - - cosh - - clamp - -## Should Consider: -- isGreaterOrEqual -- isLessOrEqual - -# 28.04.2025 - Third Iteration - -## Renamed: -- parseNumber --> fromText - -## Added -- asText - - -# 06.05.2025 - -## Added -- isEqual diff --git a/definitions/standard/runtime_functions/object/object-audit.md b/definitions/standard/runtime_functions/object/object-audit.md deleted file mode 100644 index 95fe6a6c..00000000 --- a/definitions/standard/runtime_functions/object/object-audit.md +++ /dev/null @@ -1,39 +0,0 @@ -# 26.05.2024 - First Iteration - -## Removed: - - concat - - entries - - any - - forEach - - containsValue - - values - - flter - -# 27.05.2024 - -## Removed: - - at - - replace - -## Renamed: - - put -> set - -# 05.06.2025 - -## Removed -- remove - -# 06.02.2026 - -## Added -- get - - -## Todo -current get impl looks like: - get(object: Object, key: Text): T - -But this should be changed to: - get(object: Object, key: T keyof K): T ofkey Object - -When the tucana definitions are adjusted diff --git a/definitions/standard/runtime_functions/text/text-audit.md b/definitions/standard/runtime_functions/text/text-audit.md deleted file mode 100644 index d162861a..00000000 --- a/definitions/standard/runtime_functions/text/text-audit.md +++ /dev/null @@ -1,49 +0,0 @@ -# 25.04.2025 - First Iteration - -## Added - - - asBytes - - byteSize - - capitalize - - uppercase - - lowercase - - swapcase - - chars - - at - - strip - - concat - - prepend - - insert - - length - - remove - - replace - - replaceFirst - - replaceLast - - hex - - octal - - indexOf - - contains - - split - - reverse - - startWith - - endsWith - - toASCII - - fromASCII - - encode - -# 27.04.2025 - Second Iteration - -## Renamed: - - strip --> trim - - concate --> append - - -# 06.05.2025 - -## Added -- isEqual - -# 05.06.2025 - -## Added -- decode diff --git a/definitions/standard/data_types/primitive/boolean.proto.json b/definitions/taurus/boolean/data_types/boolean.proto.json similarity index 100% rename from definitions/standard/data_types/primitive/boolean.proto.json rename to definitions/taurus/boolean/data_types/boolean.proto.json diff --git a/definitions/taurus/boolean/module.json b/definitions/taurus/boolean/module.json new file mode 100644 index 00000000..352d0aea --- /dev/null +++ b/definitions/taurus/boolean/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus-boolean", + "name": [ + { + "code": "en-US", + "content": "Boolean" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Booleans." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:toggle-left" +} diff --git a/definitions/standard/runtime_functions/boolean/std_boolean_as_number.proto.json b/definitions/taurus/boolean/runtime_functions/std_boolean_as_number.proto.json similarity index 100% rename from definitions/standard/runtime_functions/boolean/std_boolean_as_number.proto.json rename to definitions/taurus/boolean/runtime_functions/std_boolean_as_number.proto.json diff --git a/definitions/standard/runtime_functions/boolean/std_boolean_as_text.proto.json b/definitions/taurus/boolean/runtime_functions/std_boolean_as_text.proto.json similarity index 100% rename from definitions/standard/runtime_functions/boolean/std_boolean_as_text.proto.json rename to definitions/taurus/boolean/runtime_functions/std_boolean_as_text.proto.json diff --git a/definitions/standard/runtime_functions/boolean/std_boolean_from_number.proto.json b/definitions/taurus/boolean/runtime_functions/std_boolean_from_number.proto.json similarity index 100% rename from definitions/standard/runtime_functions/boolean/std_boolean_from_number.proto.json rename to definitions/taurus/boolean/runtime_functions/std_boolean_from_number.proto.json diff --git a/definitions/standard/runtime_functions/boolean/std_boolean_from_text.proto.json b/definitions/taurus/boolean/runtime_functions/std_boolean_from_text.proto.json similarity index 100% rename from definitions/standard/runtime_functions/boolean/std_boolean_from_text.proto.json rename to definitions/taurus/boolean/runtime_functions/std_boolean_from_text.proto.json diff --git a/definitions/standard/runtime_functions/boolean/std_boolean_is_equal.proto.json b/definitions/taurus/boolean/runtime_functions/std_boolean_is_equal.proto.json similarity index 100% rename from definitions/standard/runtime_functions/boolean/std_boolean_is_equal.proto.json rename to definitions/taurus/boolean/runtime_functions/std_boolean_is_equal.proto.json diff --git a/definitions/standard/runtime_functions/boolean/std_boolean_negate.proto.json b/definitions/taurus/boolean/runtime_functions/std_boolean_negate.proto.json similarity index 100% rename from definitions/standard/runtime_functions/boolean/std_boolean_negate.proto.json rename to definitions/taurus/boolean/runtime_functions/std_boolean_negate.proto.json diff --git a/definitions/standard/data_types/node/comparator.proto.json b/definitions/taurus/control/data_types/comparator.proto.json similarity index 100% rename from definitions/standard/data_types/node/comparator.proto.json rename to definitions/taurus/control/data_types/comparator.proto.json diff --git a/definitions/standard/data_types/node/consumer.proto.json b/definitions/taurus/control/data_types/consumer.proto.json similarity index 100% rename from definitions/standard/data_types/node/consumer.proto.json rename to definitions/taurus/control/data_types/consumer.proto.json diff --git a/definitions/standard/data_types/node/predicate.proto.json b/definitions/taurus/control/data_types/predicate.proto.json similarity index 100% rename from definitions/standard/data_types/node/predicate.proto.json rename to definitions/taurus/control/data_types/predicate.proto.json diff --git a/definitions/standard/data_types/node/runnable.proto.json b/definitions/taurus/control/data_types/runnable.proto.json similarity index 100% rename from definitions/standard/data_types/node/runnable.proto.json rename to definitions/taurus/control/data_types/runnable.proto.json diff --git a/definitions/standard/data_types/node/transform.proto.json b/definitions/taurus/control/data_types/transform.proto.json similarity index 100% rename from definitions/standard/data_types/node/transform.proto.json rename to definitions/taurus/control/data_types/transform.proto.json diff --git a/definitions/taurus/control/module.json b/definitions/taurus/control/module.json new file mode 100644 index 00000000..5c95ff38 --- /dev/null +++ b/definitions/taurus/control/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus-control", + "name": [ + { + "code": "en-US", + "content": "Control" + } + ], + "description": [ + { + "code": "en-US", + "content": "Flow control." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:arrow-ramp-right-2" +} diff --git a/definitions/standard/runtime_functions/control/std_control_if.proto.json b/definitions/taurus/control/runtime_functions/std_control_if.proto.json similarity index 100% rename from definitions/standard/runtime_functions/control/std_control_if.proto.json rename to definitions/taurus/control/runtime_functions/std_control_if.proto.json diff --git a/definitions/standard/runtime_functions/control/std_control_if_else.proto.json b/definitions/taurus/control/runtime_functions/std_control_if_else.proto.json similarity index 100% rename from definitions/standard/runtime_functions/control/std_control_if_else.proto.json rename to definitions/taurus/control/runtime_functions/std_control_if_else.proto.json diff --git a/definitions/standard/runtime_functions/control/std_control_return.proto.json b/definitions/taurus/control/runtime_functions/std_control_return.proto.json similarity index 100% rename from definitions/standard/runtime_functions/control/std_control_return.proto.json rename to definitions/taurus/control/runtime_functions/std_control_return.proto.json diff --git a/definitions/standard/runtime_functions/control/std_control_stop.proto.json b/definitions/taurus/control/runtime_functions/std_control_stop.proto.json similarity index 100% rename from definitions/standard/runtime_functions/control/std_control_stop.proto.json rename to definitions/taurus/control/runtime_functions/std_control_stop.proto.json diff --git a/definitions/standard/runtime_functions/control/std_control_value.proto.json b/definitions/taurus/control/runtime_functions/std_control_value.proto.json similarity index 100% rename from definitions/standard/runtime_functions/control/std_control_value.proto.json rename to definitions/taurus/control/runtime_functions/std_control_value.proto.json diff --git a/definitions/standard/data_types/type/http_method.proto.json b/definitions/taurus/http/data_types/http_method.proto.json similarity index 100% rename from definitions/standard/data_types/type/http_method.proto.json rename to definitions/taurus/http/data_types/http_method.proto.json diff --git a/definitions/standard/data_types/object/http_request.proto.json b/definitions/taurus/http/data_types/http_request.proto.json similarity index 100% rename from definitions/standard/data_types/object/http_request.proto.json rename to definitions/taurus/http/data_types/http_request.proto.json diff --git a/definitions/standard/data_types/object/http_response.proto.json b/definitions/taurus/http/data_types/http_response.proto.json similarity index 100% rename from definitions/standard/data_types/object/http_response.proto.json rename to definitions/taurus/http/data_types/http_response.proto.json diff --git a/definitions/standard/data_types/type/http_status_code.proto.json b/definitions/taurus/http/data_types/http_status_code.proto.json similarity index 100% rename from definitions/standard/data_types/type/http_status_code.proto.json rename to definitions/taurus/http/data_types/http_status_code.proto.json diff --git a/definitions/standard/data_types/type/http_url.proto.json b/definitions/taurus/http/data_types/http_url.proto.json similarity index 100% rename from definitions/standard/data_types/type/http_url.proto.json rename to definitions/taurus/http/data_types/http_url.proto.json diff --git a/definitions/taurus/http/module.json b/definitions/taurus/http/module.json new file mode 100644 index 00000000..b08d251e --- /dev/null +++ b/definitions/taurus/http/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus-http", + "name": [ + { + "code": "en-US", + "content": "HTTP" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with HTTP." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:world-www" +} diff --git a/definitions/standard/runtime_functions/http/http_request_create.proto.json b/definitions/taurus/http/runtime_functions/http_request_create.proto.json similarity index 100% rename from definitions/standard/runtime_functions/http/http_request_create.proto.json rename to definitions/taurus/http/runtime_functions/http_request_create.proto.json diff --git a/definitions/standard/runtime_functions/http/http_request_send.proto.json b/definitions/taurus/http/runtime_functions/http_request_send.proto.json similarity index 100% rename from definitions/standard/runtime_functions/http/http_request_send.proto.json rename to definitions/taurus/http/runtime_functions/http_request_send.proto.json diff --git a/definitions/standard/runtime_functions/http/http_response_create.proto.json b/definitions/taurus/http/runtime_functions/http_response_create.proto.json similarity index 100% rename from definitions/standard/runtime_functions/http/http_response_create.proto.json rename to definitions/taurus/http/runtime_functions/http_response_create.proto.json diff --git a/definitions/standard/data_types/array/list.proto.json b/definitions/taurus/list/data_types/list.proto.json similarity index 100% rename from definitions/standard/data_types/array/list.proto.json rename to definitions/taurus/list/data_types/list.proto.json diff --git a/definitions/taurus/list/module.json b/definitions/taurus/list/module.json new file mode 100644 index 00000000..b12d595e --- /dev/null +++ b/definitions/taurus/list/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus-list", + "name": [ + { + "code": "en-US", + "content": "List" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Lists" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:list" +} diff --git a/definitions/standard/runtime_functions/array/std_array_at.proto.json b/definitions/taurus/list/runtime_functions/std_array_at.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_at.proto.json rename to definitions/taurus/list/runtime_functions/std_array_at.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_concat.proto.json b/definitions/taurus/list/runtime_functions/std_array_concat.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_concat.proto.json rename to definitions/taurus/list/runtime_functions/std_array_concat.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_filter.proto.json b/definitions/taurus/list/runtime_functions/std_array_filter.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_filter.proto.json rename to definitions/taurus/list/runtime_functions/std_array_filter.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_find.proto.json b/definitions/taurus/list/runtime_functions/std_array_find.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_find.proto.json rename to definitions/taurus/list/runtime_functions/std_array_find.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_find_index.proto.json b/definitions/taurus/list/runtime_functions/std_array_find_index.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_find_index.proto.json rename to definitions/taurus/list/runtime_functions/std_array_find_index.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_find_last.proto.json b/definitions/taurus/list/runtime_functions/std_array_find_last.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_find_last.proto.json rename to definitions/taurus/list/runtime_functions/std_array_find_last.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_first.proto.json b/definitions/taurus/list/runtime_functions/std_array_first.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_first.proto.json rename to definitions/taurus/list/runtime_functions/std_array_first.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_flat.proto.json b/definitions/taurus/list/runtime_functions/std_array_flat.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_flat.proto.json rename to definitions/taurus/list/runtime_functions/std_array_flat.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_for_each.proto.json b/definitions/taurus/list/runtime_functions/std_array_for_each.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_for_each.proto.json rename to definitions/taurus/list/runtime_functions/std_array_for_each.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_index_of.proto.json b/definitions/taurus/list/runtime_functions/std_array_index_of.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_index_of.proto.json rename to definitions/taurus/list/runtime_functions/std_array_index_of.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_is_empty.proto.json b/definitions/taurus/list/runtime_functions/std_array_is_empty.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_is_empty.proto.json rename to definitions/taurus/list/runtime_functions/std_array_is_empty.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_join.proto.json b/definitions/taurus/list/runtime_functions/std_array_join.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_join.proto.json rename to definitions/taurus/list/runtime_functions/std_array_join.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_last.proto.json b/definitions/taurus/list/runtime_functions/std_array_last.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_last.proto.json rename to definitions/taurus/list/runtime_functions/std_array_last.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_map.proto.json b/definitions/taurus/list/runtime_functions/std_array_map.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_map.proto.json rename to definitions/taurus/list/runtime_functions/std_array_map.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_max.proto.json b/definitions/taurus/list/runtime_functions/std_array_max.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_max.proto.json rename to definitions/taurus/list/runtime_functions/std_array_max.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_min.proto.json b/definitions/taurus/list/runtime_functions/std_array_min.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_min.proto.json rename to definitions/taurus/list/runtime_functions/std_array_min.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_pop.proto.json b/definitions/taurus/list/runtime_functions/std_array_pop.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_pop.proto.json rename to definitions/taurus/list/runtime_functions/std_array_pop.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_push.proto.json b/definitions/taurus/list/runtime_functions/std_array_push.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_push.proto.json rename to definitions/taurus/list/runtime_functions/std_array_push.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_remove.proto.json b/definitions/taurus/list/runtime_functions/std_array_remove.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_remove.proto.json rename to definitions/taurus/list/runtime_functions/std_array_remove.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_reverse.proto.json b/definitions/taurus/list/runtime_functions/std_array_reverse.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_reverse.proto.json rename to definitions/taurus/list/runtime_functions/std_array_reverse.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_size.proto.json b/definitions/taurus/list/runtime_functions/std_array_size.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_size.proto.json rename to definitions/taurus/list/runtime_functions/std_array_size.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_sort.proto.json b/definitions/taurus/list/runtime_functions/std_array_sort.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_sort.proto.json rename to definitions/taurus/list/runtime_functions/std_array_sort.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_sort_reverse.proto.json b/definitions/taurus/list/runtime_functions/std_array_sort_reverse.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_sort_reverse.proto.json rename to definitions/taurus/list/runtime_functions/std_array_sort_reverse.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_sum.proto.json b/definitions/taurus/list/runtime_functions/std_array_sum.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_sum.proto.json rename to definitions/taurus/list/runtime_functions/std_array_sum.proto.json diff --git a/definitions/standard/runtime_functions/array/std_array_to_unique.proto.json b/definitions/taurus/list/runtime_functions/std_array_to_unique.proto.json similarity index 100% rename from definitions/standard/runtime_functions/array/std_array_to_unique.proto.json rename to definitions/taurus/list/runtime_functions/std_array_to_unique.proto.json diff --git a/definitions/standard/data_types/primitive/number.proto.json b/definitions/taurus/number/data_types/number.proto.json similarity index 100% rename from definitions/standard/data_types/primitive/number.proto.json rename to definitions/taurus/number/data_types/number.proto.json diff --git a/definitions/taurus/number/module.json b/definitions/taurus/number/module.json new file mode 100644 index 00000000..d9e2f46a --- /dev/null +++ b/definitions/taurus/number/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus-number", + "name": [ + { + "code": "en-US", + "content": "Number" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Numbers." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:math-function" +} diff --git a/definitions/standard/runtime_functions/number/std_number_abs.proto.json b/definitions/taurus/number/runtime_functions/std_number_abs.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_abs.proto.json rename to definitions/taurus/number/runtime_functions/std_number_abs.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_add.proto.json b/definitions/taurus/number/runtime_functions/std_number_add.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_add.proto.json rename to definitions/taurus/number/runtime_functions/std_number_add.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_arccos.proto.json b/definitions/taurus/number/runtime_functions/std_number_arccos.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_arccos.proto.json rename to definitions/taurus/number/runtime_functions/std_number_arccos.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_arcsin.proto.json b/definitions/taurus/number/runtime_functions/std_number_arcsin.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_arcsin.proto.json rename to definitions/taurus/number/runtime_functions/std_number_arcsin.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_arctan.proto.json b/definitions/taurus/number/runtime_functions/std_number_arctan.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_arctan.proto.json rename to definitions/taurus/number/runtime_functions/std_number_arctan.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_as_text.proto.json b/definitions/taurus/number/runtime_functions/std_number_as_text.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_as_text.proto.json rename to definitions/taurus/number/runtime_functions/std_number_as_text.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_clamp.proto.json b/definitions/taurus/number/runtime_functions/std_number_clamp.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_clamp.proto.json rename to definitions/taurus/number/runtime_functions/std_number_clamp.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_cos.proto.json b/definitions/taurus/number/runtime_functions/std_number_cos.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_cos.proto.json rename to definitions/taurus/number/runtime_functions/std_number_cos.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_cosh.proto.json b/definitions/taurus/number/runtime_functions/std_number_cosh.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_cosh.proto.json rename to definitions/taurus/number/runtime_functions/std_number_cosh.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_divide.proto.json b/definitions/taurus/number/runtime_functions/std_number_divide.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_divide.proto.json rename to definitions/taurus/number/runtime_functions/std_number_divide.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_euler.proto.json b/definitions/taurus/number/runtime_functions/std_number_euler.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_euler.proto.json rename to definitions/taurus/number/runtime_functions/std_number_euler.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_exponential.proto.json b/definitions/taurus/number/runtime_functions/std_number_exponential.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_exponential.proto.json rename to definitions/taurus/number/runtime_functions/std_number_exponential.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_from_text.proto.json b/definitions/taurus/number/runtime_functions/std_number_from_text.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_from_text.proto.json rename to definitions/taurus/number/runtime_functions/std_number_from_text.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_has_digits.proto.json b/definitions/taurus/number/runtime_functions/std_number_has_digits.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_has_digits.proto.json rename to definitions/taurus/number/runtime_functions/std_number_has_digits.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_infinity.proto.json b/definitions/taurus/number/runtime_functions/std_number_infinity.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_infinity.proto.json rename to definitions/taurus/number/runtime_functions/std_number_infinity.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_is_equal.proto.json b/definitions/taurus/number/runtime_functions/std_number_is_equal.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_is_equal.proto.json rename to definitions/taurus/number/runtime_functions/std_number_is_equal.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_is_greater.proto.json b/definitions/taurus/number/runtime_functions/std_number_is_greater.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_is_greater.proto.json rename to definitions/taurus/number/runtime_functions/std_number_is_greater.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_is_less.proto.json b/definitions/taurus/number/runtime_functions/std_number_is_less.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_is_less.proto.json rename to definitions/taurus/number/runtime_functions/std_number_is_less.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_is_positive.proto.json b/definitions/taurus/number/runtime_functions/std_number_is_positive.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_is_positive.proto.json rename to definitions/taurus/number/runtime_functions/std_number_is_positive.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_is_zero.proto.json b/definitions/taurus/number/runtime_functions/std_number_is_zero.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_is_zero.proto.json rename to definitions/taurus/number/runtime_functions/std_number_is_zero.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_ln.proto.json b/definitions/taurus/number/runtime_functions/std_number_ln.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_ln.proto.json rename to definitions/taurus/number/runtime_functions/std_number_ln.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_log.proto.json b/definitions/taurus/number/runtime_functions/std_number_log.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_log.proto.json rename to definitions/taurus/number/runtime_functions/std_number_log.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_max.proto.json b/definitions/taurus/number/runtime_functions/std_number_max.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_max.proto.json rename to definitions/taurus/number/runtime_functions/std_number_max.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_min.proto.json b/definitions/taurus/number/runtime_functions/std_number_min.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_min.proto.json rename to definitions/taurus/number/runtime_functions/std_number_min.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_modulo.proto.json b/definitions/taurus/number/runtime_functions/std_number_modulo.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_modulo.proto.json rename to definitions/taurus/number/runtime_functions/std_number_modulo.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_multiply.proto.json b/definitions/taurus/number/runtime_functions/std_number_multiply.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_multiply.proto.json rename to definitions/taurus/number/runtime_functions/std_number_multiply.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_negate.proto.json b/definitions/taurus/number/runtime_functions/std_number_negate.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_negate.proto.json rename to definitions/taurus/number/runtime_functions/std_number_negate.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_pi.proto.json b/definitions/taurus/number/runtime_functions/std_number_pi.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_pi.proto.json rename to definitions/taurus/number/runtime_functions/std_number_pi.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_random_number.proto.json b/definitions/taurus/number/runtime_functions/std_number_random_number.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_random_number.proto.json rename to definitions/taurus/number/runtime_functions/std_number_random_number.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_remove_digits.proto.json b/definitions/taurus/number/runtime_functions/std_number_remove_digits.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_remove_digits.proto.json rename to definitions/taurus/number/runtime_functions/std_number_remove_digits.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_root.proto.json b/definitions/taurus/number/runtime_functions/std_number_root.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_root.proto.json rename to definitions/taurus/number/runtime_functions/std_number_root.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_round.proto.json b/definitions/taurus/number/runtime_functions/std_number_round.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_round.proto.json rename to definitions/taurus/number/runtime_functions/std_number_round.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_round_down.proto.json b/definitions/taurus/number/runtime_functions/std_number_round_down.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_round_down.proto.json rename to definitions/taurus/number/runtime_functions/std_number_round_down.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_round_up.proto.json b/definitions/taurus/number/runtime_functions/std_number_round_up.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_round_up.proto.json rename to definitions/taurus/number/runtime_functions/std_number_round_up.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_sin.proto.json b/definitions/taurus/number/runtime_functions/std_number_sin.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_sin.proto.json rename to definitions/taurus/number/runtime_functions/std_number_sin.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_sinh.proto.json b/definitions/taurus/number/runtime_functions/std_number_sinh.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_sinh.proto.json rename to definitions/taurus/number/runtime_functions/std_number_sinh.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_square.proto.json b/definitions/taurus/number/runtime_functions/std_number_square.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_square.proto.json rename to definitions/taurus/number/runtime_functions/std_number_square.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_square_root.proto.json b/definitions/taurus/number/runtime_functions/std_number_square_root.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_square_root.proto.json rename to definitions/taurus/number/runtime_functions/std_number_square_root.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_subtract.proto.json b/definitions/taurus/number/runtime_functions/std_number_subtract.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_subtract.proto.json rename to definitions/taurus/number/runtime_functions/std_number_subtract.proto.json diff --git a/definitions/standard/runtime_functions/number/std_number_tan.proto.json b/definitions/taurus/number/runtime_functions/std_number_tan.proto.json similarity index 100% rename from definitions/standard/runtime_functions/number/std_number_tan.proto.json rename to definitions/taurus/number/runtime_functions/std_number_tan.proto.json diff --git a/definitions/standard/data_types/object/object.proto.json b/definitions/taurus/object/data_types/object.proto.json similarity index 100% rename from definitions/standard/data_types/object/object.proto.json rename to definitions/taurus/object/data_types/object.proto.json diff --git a/definitions/standard/data_types/type/type.proto.json b/definitions/taurus/object/data_types/type.proto.json similarity index 100% rename from definitions/standard/data_types/type/type.proto.json rename to definitions/taurus/object/data_types/type.proto.json diff --git a/definitions/taurus/object/module.json b/definitions/taurus/object/module.json new file mode 100644 index 00000000..e7bea623 --- /dev/null +++ b/definitions/taurus/object/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus-object", + "name": [ + { + "code": "en-US", + "content": "Object" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Objects." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:cube" +} diff --git a/definitions/standard/runtime_functions/object/std_object_contains_key.proto.json b/definitions/taurus/object/runtime_functions/std_object_contains_key.proto.json similarity index 100% rename from definitions/standard/runtime_functions/object/std_object_contains_key.proto.json rename to definitions/taurus/object/runtime_functions/std_object_contains_key.proto.json diff --git a/definitions/standard/runtime_functions/object/std_object_get.proto.json b/definitions/taurus/object/runtime_functions/std_object_get.proto.json similarity index 100% rename from definitions/standard/runtime_functions/object/std_object_get.proto.json rename to definitions/taurus/object/runtime_functions/std_object_get.proto.json diff --git a/definitions/standard/runtime_functions/object/std_object_keys.proto.json b/definitions/taurus/object/runtime_functions/std_object_keys.proto.json similarity index 100% rename from definitions/standard/runtime_functions/object/std_object_keys.proto.json rename to definitions/taurus/object/runtime_functions/std_object_keys.proto.json diff --git a/definitions/standard/runtime_functions/object/std_object_set.proto.json b/definitions/taurus/object/runtime_functions/std_object_set.proto.json similarity index 100% rename from definitions/standard/runtime_functions/object/std_object_set.proto.json rename to definitions/taurus/object/runtime_functions/std_object_set.proto.json diff --git a/definitions/standard/runtime_functions/object/std_object_size.proto.json b/definitions/taurus/object/runtime_functions/std_object_size.proto.json similarity index 100% rename from definitions/standard/runtime_functions/object/std_object_size.proto.json rename to definitions/taurus/object/runtime_functions/std_object_size.proto.json diff --git a/definitions/standard/data_types/primitive/text.proto.json b/definitions/taurus/text/data_types/text.proto.json similarity index 100% rename from definitions/standard/data_types/primitive/text.proto.json rename to definitions/taurus/text/data_types/text.proto.json diff --git a/definitions/standard/data_types/type/text_encoding.proto.json b/definitions/taurus/text/data_types/text_encoding.proto.json similarity index 100% rename from definitions/standard/data_types/type/text_encoding.proto.json rename to definitions/taurus/text/data_types/text_encoding.proto.json diff --git a/definitions/taurus/text/module.json b/definitions/taurus/text/module.json new file mode 100644 index 00000000..4acb39e6 --- /dev/null +++ b/definitions/taurus/text/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus-text", + "name": [ + { + "code": "en-US", + "content": "Text" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Text." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:abc" +} diff --git a/definitions/standard/runtime_functions/text/std_text_append.proto.json b/definitions/taurus/text/runtime_functions/std_text_append.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_append.proto.json rename to definitions/taurus/text/runtime_functions/std_text_append.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_as_bytes.proto.json b/definitions/taurus/text/runtime_functions/std_text_as_bytes.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_as_bytes.proto.json rename to definitions/taurus/text/runtime_functions/std_text_as_bytes.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_at.proto.json b/definitions/taurus/text/runtime_functions/std_text_at.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_at.proto.json rename to definitions/taurus/text/runtime_functions/std_text_at.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_byte_size.proto.json b/definitions/taurus/text/runtime_functions/std_text_byte_size.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_byte_size.proto.json rename to definitions/taurus/text/runtime_functions/std_text_byte_size.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_capitalize.proto.json b/definitions/taurus/text/runtime_functions/std_text_capitalize.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_capitalize.proto.json rename to definitions/taurus/text/runtime_functions/std_text_capitalize.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_chars.proto.json b/definitions/taurus/text/runtime_functions/std_text_chars.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_chars.proto.json rename to definitions/taurus/text/runtime_functions/std_text_chars.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_contains.proto.json b/definitions/taurus/text/runtime_functions/std_text_contains.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_contains.proto.json rename to definitions/taurus/text/runtime_functions/std_text_contains.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_decode.proto.json b/definitions/taurus/text/runtime_functions/std_text_decode.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_decode.proto.json rename to definitions/taurus/text/runtime_functions/std_text_decode.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_encode.proto.json b/definitions/taurus/text/runtime_functions/std_text_encode.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_encode.proto.json rename to definitions/taurus/text/runtime_functions/std_text_encode.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_ends_with.proto.json b/definitions/taurus/text/runtime_functions/std_text_ends_with.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_ends_with.proto.json rename to definitions/taurus/text/runtime_functions/std_text_ends_with.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_from_ascii.proto.json b/definitions/taurus/text/runtime_functions/std_text_from_ascii.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_from_ascii.proto.json rename to definitions/taurus/text/runtime_functions/std_text_from_ascii.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_hex.proto.json b/definitions/taurus/text/runtime_functions/std_text_hex.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_hex.proto.json rename to definitions/taurus/text/runtime_functions/std_text_hex.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_index_of.proto.json b/definitions/taurus/text/runtime_functions/std_text_index_of.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_index_of.proto.json rename to definitions/taurus/text/runtime_functions/std_text_index_of.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_insert.proto.json b/definitions/taurus/text/runtime_functions/std_text_insert.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_insert.proto.json rename to definitions/taurus/text/runtime_functions/std_text_insert.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_is_equal.proto.json b/definitions/taurus/text/runtime_functions/std_text_is_equal.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_is_equal.proto.json rename to definitions/taurus/text/runtime_functions/std_text_is_equal.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_length.proto.json b/definitions/taurus/text/runtime_functions/std_text_length.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_length.proto.json rename to definitions/taurus/text/runtime_functions/std_text_length.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_lowercase.proto.json b/definitions/taurus/text/runtime_functions/std_text_lowercase.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_lowercase.proto.json rename to definitions/taurus/text/runtime_functions/std_text_lowercase.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_octal.proto.json b/definitions/taurus/text/runtime_functions/std_text_octal.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_octal.proto.json rename to definitions/taurus/text/runtime_functions/std_text_octal.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_prepend.proto.json b/definitions/taurus/text/runtime_functions/std_text_prepend.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_prepend.proto.json rename to definitions/taurus/text/runtime_functions/std_text_prepend.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_remove.proto.json b/definitions/taurus/text/runtime_functions/std_text_remove.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_remove.proto.json rename to definitions/taurus/text/runtime_functions/std_text_remove.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_replace.proto.json b/definitions/taurus/text/runtime_functions/std_text_replace.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_replace.proto.json rename to definitions/taurus/text/runtime_functions/std_text_replace.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_replace_first.proto.json b/definitions/taurus/text/runtime_functions/std_text_replace_first.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_replace_first.proto.json rename to definitions/taurus/text/runtime_functions/std_text_replace_first.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_replace_last.proto.json b/definitions/taurus/text/runtime_functions/std_text_replace_last.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_replace_last.proto.json rename to definitions/taurus/text/runtime_functions/std_text_replace_last.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_reverse.proto.json b/definitions/taurus/text/runtime_functions/std_text_reverse.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_reverse.proto.json rename to definitions/taurus/text/runtime_functions/std_text_reverse.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_split.proto.json b/definitions/taurus/text/runtime_functions/std_text_split.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_split.proto.json rename to definitions/taurus/text/runtime_functions/std_text_split.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_starts_with.proto.json b/definitions/taurus/text/runtime_functions/std_text_starts_with.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_starts_with.proto.json rename to definitions/taurus/text/runtime_functions/std_text_starts_with.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_swapcase.proto.json b/definitions/taurus/text/runtime_functions/std_text_swapcase.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_swapcase.proto.json rename to definitions/taurus/text/runtime_functions/std_text_swapcase.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_to_ascii.proto.json b/definitions/taurus/text/runtime_functions/std_text_to_ascii.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_to_ascii.proto.json rename to definitions/taurus/text/runtime_functions/std_text_to_ascii.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_trim.proto.json b/definitions/taurus/text/runtime_functions/std_text_trim.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_trim.proto.json rename to definitions/taurus/text/runtime_functions/std_text_trim.proto.json diff --git a/definitions/standard/runtime_functions/text/std_text_uppercase.proto.json b/definitions/taurus/text/runtime_functions/std_text_uppercase.proto.json similarity index 100% rename from definitions/standard/runtime_functions/text/std_text_uppercase.proto.json rename to definitions/taurus/text/runtime_functions/std_text_uppercase.proto.json