From 993e457f72ed39fca1dcda81e1fa8d4990c657cb Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 11:49:26 +0200 Subject: [PATCH 01/16] dependencies: cleanup --- Cargo.toml | 1 + crates/cli/Cargo.toml | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1f56914..22fa978 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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 1af2ce3..a41e513 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 } + From 3c8df0d6a66dbb33de6b6fd43c286a8c5ba69b7e Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 11:51:26 +0200 Subject: [PATCH 02/16] dependencies: cargo update --- Cargo.lock | 796 ++++++++++++++++++++++++++--------------------------- 1 file changed, 387 insertions(+), 409 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 074ef44..18cb67f 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", ] @@ -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" From cf7923e686da8eeb83968a53d1833d987deb24b2 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 12:06:42 +0200 Subject: [PATCH 03/16] feat: new module structure --- .../type/cron_day_of_month.proto.json | 0 .../type/cron_day_of_week.proto.json | 0 .../data_types/type/cron_hour.proto.json | 0 .../data_types/type/cron_minute.proto.json | 0 .../data_types/type/cron_month.proto.json | 0 .../flow_types/cron.proto.json | 0 definitions/draco_cron/module.json | 18 +++++ .../data_types/rest_adapter_input.proto.json | 0 .../flow_types/rest.proto.json | 0 definitions/draco_rest/module.json | 18 +++++ .../rest_control_respond.proto.json | 0 .../runtime_functions/array/array-audit.md | 12 --- .../boolean/boolean-audit.md | 13 ---- .../control/control-audit.md | 25 ------- .../runtime_functions/number/number-audit.md | 73 ------------------- .../runtime_functions/object/object-audit.md | 39 ---------- .../runtime_functions/text/text-audit.md | 49 ------------- .../boolean/data_types}/boolean.proto.json | 0 definitions/taurus/boolean/module.json | 18 +++++ .../std_boolean_as_number.proto.json | 0 .../std_boolean_as_text.proto.json | 0 .../std_boolean_from_number.proto.json | 0 .../std_boolean_from_text.proto.json | 0 .../std_boolean_is_equal.proto.json | 0 .../std_boolean_negate.proto.json | 0 .../control/data_types}/comparator.proto.json | 0 .../control/data_types}/consumer.proto.json | 0 .../control/data_types}/predicate.proto.json | 0 .../control/data_types}/runnable.proto.json | 0 .../control/data_types}/transform.proto.json | 0 definitions/taurus/control/module.json | 18 +++++ .../std_control_if.proto.json | 0 .../std_control_if_else.proto.json | 0 .../std_control_return.proto.json | 0 .../std_control_stop.proto.json | 0 .../std_control_value.proto.json | 0 .../http/data_types}/http_method.proto.json | 0 .../http/data_types}/http_request.proto.json | 0 .../http/data_types}/http_response.proto.json | 0 .../data_types}/http_status_code.proto.json | 0 .../http/data_types}/http_url.proto.json | 0 definitions/taurus/http/module.json | 18 +++++ .../http_request_create.proto.json | 0 .../http_request_send.proto.json | 0 .../http_response_create.proto.json | 0 .../list/data_types}/list.proto.json | 0 definitions/taurus/list/module.json | 18 +++++ .../std_array_at.proto.json | 0 .../std_array_concat.proto.json | 0 .../std_array_filter.proto.json | 0 .../std_array_find.proto.json | 0 .../std_array_find_index.proto.json | 0 .../std_array_find_last.proto.json | 0 .../std_array_first.proto.json | 0 .../std_array_flat.proto.json | 0 .../std_array_for_each.proto.json | 0 .../std_array_index_of.proto.json | 0 .../std_array_is_empty.proto.json | 0 .../std_array_join.proto.json | 0 .../std_array_last.proto.json | 0 .../std_array_map.proto.json | 0 .../std_array_max.proto.json | 0 .../std_array_min.proto.json | 0 .../std_array_pop.proto.json | 0 .../std_array_push.proto.json | 0 .../std_array_remove.proto.json | 0 .../std_array_reverse.proto.json | 0 .../std_array_size.proto.json | 0 .../std_array_sort.proto.json | 0 .../std_array_sort_reverse.proto.json | 0 .../std_array_sum.proto.json | 0 .../std_array_to_unique.proto.json | 0 .../number/data_types}/number.proto.json | 0 definitions/taurus/number/module.json | 18 +++++ .../std_number_abs.proto.json | 0 .../std_number_add.proto.json | 0 .../std_number_arccos.proto.json | 0 .../std_number_arcsin.proto.json | 0 .../std_number_arctan.proto.json | 0 .../std_number_as_text.proto.json | 0 .../std_number_clamp.proto.json | 0 .../std_number_cos.proto.json | 0 .../std_number_cosh.proto.json | 0 .../std_number_divide.proto.json | 0 .../std_number_euler.proto.json | 0 .../std_number_exponential.proto.json | 0 .../std_number_from_text.proto.json | 0 .../std_number_has_digits.proto.json | 0 .../std_number_infinity.proto.json | 0 .../std_number_is_equal.proto.json | 0 .../std_number_is_greater.proto.json | 0 .../std_number_is_less.proto.json | 0 .../std_number_is_positive.proto.json | 0 .../std_number_is_zero.proto.json | 0 .../std_number_ln.proto.json | 0 .../std_number_log.proto.json | 0 .../std_number_max.proto.json | 0 .../std_number_min.proto.json | 0 .../std_number_modulo.proto.json | 0 .../std_number_multiply.proto.json | 0 .../std_number_negate.proto.json | 0 .../std_number_pi.proto.json | 0 .../std_number_random_number.proto.json | 0 .../std_number_remove_digits.proto.json | 0 .../std_number_root.proto.json | 0 .../std_number_round.proto.json | 0 .../std_number_round_down.proto.json | 0 .../std_number_round_up.proto.json | 0 .../std_number_sin.proto.json | 0 .../std_number_sinh.proto.json | 0 .../std_number_square.proto.json | 0 .../std_number_square_root.proto.json | 0 .../std_number_subtract.proto.json | 0 .../std_number_tan.proto.json | 0 .../object/data_types}/object.proto.json | 0 .../object/data_types}/type.proto.json | 0 definitions/taurus/object/module.json | 18 +++++ .../std_object_contains_key.proto.json | 0 .../std_object_get.proto.json | 0 .../std_object_keys.proto.json | 0 .../std_object_set.proto.json | 0 .../std_object_size.proto.json | 0 .../text/data_types}/text.proto.json | 0 .../text/data_types}/text_encoding.proto.json | 0 definitions/taurus/text/module.json | 18 +++++ .../std_text_append.proto.json | 0 .../std_text_as_bytes.proto.json | 0 .../runtime_functions}/std_text_at.proto.json | 0 .../std_text_byte_size.proto.json | 0 .../std_text_capitalize.proto.json | 0 .../std_text_chars.proto.json | 0 .../std_text_contains.proto.json | 0 .../std_text_decode.proto.json | 0 .../std_text_encode.proto.json | 0 .../std_text_ends_with.proto.json | 0 .../std_text_from_ascii.proto.json | 0 .../std_text_hex.proto.json | 0 .../std_text_index_of.proto.json | 0 .../std_text_insert.proto.json | 0 .../std_text_is_equal.proto.json | 0 .../std_text_length.proto.json | 0 .../std_text_lowercase.proto.json | 0 .../std_text_octal.proto.json | 0 .../std_text_prepend.proto.json | 0 .../std_text_remove.proto.json | 0 .../std_text_replace.proto.json | 0 .../std_text_replace_first.proto.json | 0 .../std_text_replace_last.proto.json | 0 .../std_text_reverse.proto.json | 0 .../std_text_split.proto.json | 0 .../std_text_starts_with.proto.json | 0 .../std_text_swapcase.proto.json | 0 .../std_text_to_ascii.proto.json | 0 .../std_text_trim.proto.json | 0 .../std_text_uppercase.proto.json | 0 155 files changed, 162 insertions(+), 211 deletions(-) rename definitions/{cron => draco_cron}/data_types/type/cron_day_of_month.proto.json (100%) rename definitions/{cron => draco_cron}/data_types/type/cron_day_of_week.proto.json (100%) rename definitions/{cron => draco_cron}/data_types/type/cron_hour.proto.json (100%) rename definitions/{cron => draco_cron}/data_types/type/cron_minute.proto.json (100%) rename definitions/{cron => draco_cron}/data_types/type/cron_month.proto.json (100%) rename definitions/{cron => draco_cron}/flow_types/cron.proto.json (100%) create mode 100644 definitions/draco_cron/module.json rename definitions/{rest => draco_rest}/data_types/rest_adapter_input.proto.json (100%) rename definitions/{rest => draco_rest}/flow_types/rest.proto.json (100%) create mode 100644 definitions/draco_rest/module.json rename definitions/{rest => draco_rest}/runtime_functions/rest_control_respond.proto.json (100%) delete mode 100644 definitions/standard/runtime_functions/array/array-audit.md delete mode 100644 definitions/standard/runtime_functions/boolean/boolean-audit.md delete mode 100644 definitions/standard/runtime_functions/control/control-audit.md delete mode 100644 definitions/standard/runtime_functions/number/number-audit.md delete mode 100644 definitions/standard/runtime_functions/object/object-audit.md delete mode 100644 definitions/standard/runtime_functions/text/text-audit.md rename definitions/{standard/data_types/primitive => taurus/boolean/data_types}/boolean.proto.json (100%) create mode 100644 definitions/taurus/boolean/module.json rename definitions/{standard/runtime_functions/boolean => taurus/boolean/runtime_functions}/std_boolean_as_number.proto.json (100%) rename definitions/{standard/runtime_functions/boolean => taurus/boolean/runtime_functions}/std_boolean_as_text.proto.json (100%) rename definitions/{standard/runtime_functions/boolean => taurus/boolean/runtime_functions}/std_boolean_from_number.proto.json (100%) rename definitions/{standard/runtime_functions/boolean => taurus/boolean/runtime_functions}/std_boolean_from_text.proto.json (100%) rename definitions/{standard/runtime_functions/boolean => taurus/boolean/runtime_functions}/std_boolean_is_equal.proto.json (100%) rename definitions/{standard/runtime_functions/boolean => taurus/boolean/runtime_functions}/std_boolean_negate.proto.json (100%) rename definitions/{standard/data_types/node => taurus/control/data_types}/comparator.proto.json (100%) rename definitions/{standard/data_types/node => taurus/control/data_types}/consumer.proto.json (100%) rename definitions/{standard/data_types/node => taurus/control/data_types}/predicate.proto.json (100%) rename definitions/{standard/data_types/node => taurus/control/data_types}/runnable.proto.json (100%) rename definitions/{standard/data_types/node => taurus/control/data_types}/transform.proto.json (100%) create mode 100644 definitions/taurus/control/module.json rename definitions/{standard/runtime_functions/control => taurus/control/runtime_functions}/std_control_if.proto.json (100%) rename definitions/{standard/runtime_functions/control => taurus/control/runtime_functions}/std_control_if_else.proto.json (100%) rename definitions/{standard/runtime_functions/control => taurus/control/runtime_functions}/std_control_return.proto.json (100%) rename definitions/{standard/runtime_functions/control => taurus/control/runtime_functions}/std_control_stop.proto.json (100%) rename definitions/{standard/runtime_functions/control => taurus/control/runtime_functions}/std_control_value.proto.json (100%) rename definitions/{standard/data_types/type => taurus/http/data_types}/http_method.proto.json (100%) rename definitions/{standard/data_types/object => taurus/http/data_types}/http_request.proto.json (100%) rename definitions/{standard/data_types/object => taurus/http/data_types}/http_response.proto.json (100%) rename definitions/{standard/data_types/type => taurus/http/data_types}/http_status_code.proto.json (100%) rename definitions/{standard/data_types/type => taurus/http/data_types}/http_url.proto.json (100%) create mode 100644 definitions/taurus/http/module.json rename definitions/{standard/runtime_functions/http => taurus/http/runtime_functions}/http_request_create.proto.json (100%) rename definitions/{standard/runtime_functions/http => taurus/http/runtime_functions}/http_request_send.proto.json (100%) rename definitions/{standard/runtime_functions/http => taurus/http/runtime_functions}/http_response_create.proto.json (100%) rename definitions/{standard/data_types/array => taurus/list/data_types}/list.proto.json (100%) create mode 100644 definitions/taurus/list/module.json rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_at.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_concat.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_filter.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_find.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_find_index.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_find_last.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_first.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_flat.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_for_each.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_index_of.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_is_empty.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_join.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_last.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_map.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_max.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_min.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_pop.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_push.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_remove.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_reverse.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_size.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_sort.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_sort_reverse.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_sum.proto.json (100%) rename definitions/{standard/runtime_functions/array => taurus/list/runtime_functions}/std_array_to_unique.proto.json (100%) rename definitions/{standard/data_types/primitive => taurus/number/data_types}/number.proto.json (100%) create mode 100644 definitions/taurus/number/module.json rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_abs.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_add.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_arccos.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_arcsin.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_arctan.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_as_text.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_clamp.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_cos.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_cosh.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_divide.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_euler.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_exponential.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_from_text.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_has_digits.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_infinity.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_is_equal.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_is_greater.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_is_less.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_is_positive.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_is_zero.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_ln.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_log.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_max.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_min.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_modulo.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_multiply.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_negate.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_pi.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_random_number.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_remove_digits.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_root.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_round.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_round_down.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_round_up.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_sin.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_sinh.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_square.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_square_root.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_subtract.proto.json (100%) rename definitions/{standard/runtime_functions/number => taurus/number/runtime_functions}/std_number_tan.proto.json (100%) rename definitions/{standard/data_types/object => taurus/object/data_types}/object.proto.json (100%) rename definitions/{standard/data_types/type => taurus/object/data_types}/type.proto.json (100%) create mode 100644 definitions/taurus/object/module.json rename definitions/{standard/runtime_functions/object => taurus/object/runtime_functions}/std_object_contains_key.proto.json (100%) rename definitions/{standard/runtime_functions/object => taurus/object/runtime_functions}/std_object_get.proto.json (100%) rename definitions/{standard/runtime_functions/object => taurus/object/runtime_functions}/std_object_keys.proto.json (100%) rename definitions/{standard/runtime_functions/object => taurus/object/runtime_functions}/std_object_set.proto.json (100%) rename definitions/{standard/runtime_functions/object => taurus/object/runtime_functions}/std_object_size.proto.json (100%) rename definitions/{standard/data_types/primitive => taurus/text/data_types}/text.proto.json (100%) rename definitions/{standard/data_types/type => taurus/text/data_types}/text_encoding.proto.json (100%) create mode 100644 definitions/taurus/text/module.json rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_append.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_as_bytes.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_at.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_byte_size.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_capitalize.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_chars.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_contains.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_decode.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_encode.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_ends_with.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_from_ascii.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_hex.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_index_of.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_insert.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_is_equal.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_length.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_lowercase.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_octal.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_prepend.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_remove.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_replace.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_replace_first.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_replace_last.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_reverse.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_split.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_starts_with.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_swapcase.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_to_ascii.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_trim.proto.json (100%) rename definitions/{standard/runtime_functions/text => taurus/text/runtime_functions}/std_text_uppercase.proto.json (100%) 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/cron/flow_types/cron.proto.json b/definitions/draco_cron/flow_types/cron.proto.json similarity index 100% rename from definitions/cron/flow_types/cron.proto.json rename to definitions/draco_cron/flow_types/cron.proto.json diff --git a/definitions/draco_cron/module.json b/definitions/draco_cron/module.json new file mode 100644 index 0000000..a47cf59 --- /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": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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/rest/flow_types/rest.proto.json b/definitions/draco_rest/flow_types/rest.proto.json similarity index 100% rename from definitions/rest/flow_types/rest.proto.json rename to definitions/draco_rest/flow_types/rest.proto.json diff --git a/definitions/draco_rest/module.json b/definitions/draco_rest/module.json new file mode 100644 index 0000000..7984c0b --- /dev/null +++ b/definitions/draco_rest/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "draco-rest", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 201f448..0000000 --- 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 8de7a35..0000000 --- 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 727a2a4..0000000 --- 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 1888f0e..0000000 --- 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 95fe6a6..0000000 --- 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 d162861..0000000 --- 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 0000000..cc43c75 --- /dev/null +++ b/definitions/taurus/boolean/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "taurus", + "name": [ + { + "code": "en-US", + "content": "Boolean" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 0000000..775b233 --- /dev/null +++ b/definitions/taurus/control/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "cron", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 0000000..775b233 --- /dev/null +++ b/definitions/taurus/http/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "cron", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 0000000..775b233 --- /dev/null +++ b/definitions/taurus/list/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "cron", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 0000000..775b233 --- /dev/null +++ b/definitions/taurus/number/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "cron", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 0000000..775b233 --- /dev/null +++ b/definitions/taurus/object/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "cron", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 0000000..775b233 --- /dev/null +++ b/definitions/taurus/text/module.json @@ -0,0 +1,18 @@ +{ + "identifier": "cron", + "name": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "description": [ + { + "code": "en-US", + "content": "Cron" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:alarm" +} 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 From 93d3742f9908eb219895d59bb27b8c49efc20269 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 12:10:21 +0200 Subject: [PATCH 04/16] dependencies: updated tucana to 0.0.69 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 18cb67f..814c9c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2489,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", diff --git a/Cargo.toml b/Cargo.toml index 22fa978..0ea26c1 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" From 886d2400d1af03d0dc6b8f64f802a64c049a9735 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 12:25:45 +0200 Subject: [PATCH 05/16] feat: made current flow types to runtime flow types --- .../draco_cron/{flow_types => runtime_flow_types}/cron.proto.json | 0 .../draco_rest/{flow_types => runtime_flow_types}/rest.proto.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename definitions/draco_cron/{flow_types => runtime_flow_types}/cron.proto.json (100%) rename definitions/draco_rest/{flow_types => runtime_flow_types}/rest.proto.json (100%) diff --git a/definitions/draco_cron/flow_types/cron.proto.json b/definitions/draco_cron/runtime_flow_types/cron.proto.json similarity index 100% rename from definitions/draco_cron/flow_types/cron.proto.json rename to definitions/draco_cron/runtime_flow_types/cron.proto.json diff --git a/definitions/draco_rest/flow_types/rest.proto.json b/definitions/draco_rest/runtime_flow_types/rest.proto.json similarity index 100% rename from definitions/draco_rest/flow_types/rest.proto.json rename to definitions/draco_rest/runtime_flow_types/rest.proto.json From 7f8e1671b7c42e988cf1b294fa74a3c99c165242 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 13:43:36 +0200 Subject: [PATCH 06/16] drop: removed old service client for definitions --- .../src/command/push/data_type_client_impl.rs | 52 ----------------- .../src/command/push/flow_type_client_impl.rs | 53 ------------------ .../src/command/push/function_client_impl.rs | 56 ------------------- crates/cli/src/command/push/mod.rs | 53 +----------------- 4 files changed, 1 insertion(+), 213 deletions(-) delete mode 100644 crates/cli/src/command/push/data_type_client_impl.rs delete mode 100644 crates/cli/src/command/push/flow_type_client_impl.rs delete mode 100644 crates/cli/src/command/push/function_client_impl.rs diff --git a/crates/cli/src/command/push/data_type_client_impl.rs b/crates/cli/src/command/push/data_type_client_impl.rs deleted file mode 100644 index 09bd1b7..0000000 --- a/crates/cli/src/command/push/data_type_client_impl.rs +++ /dev/null @@ -1,52 +0,0 @@ -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; - -pub struct SagittariusDataTypeServiceClient { - client: DataTypeServiceClient, - token: String, -} - -impl SagittariusDataTypeServiceClient { - pub async fn new(sagittarius_url: String, token: String) -> Self { - let client = match DataTypeServiceClient::connect(sagittarius_url).await { - Ok(client) => { - info(String::from( - "Successfully connected to Sagittarius DataType Endpoint!", - )); - client - } - Err(err) => panic!( - "Failed to connect to Sagittarius (DataType Endpoint): {:?}", - err - ), - }; - - Self { client, token } - } - - pub async fn update_data_types(&mut self, data_types: Vec) { - let request = Request::from_parts( - get_authorization_metadata(&self.token), - Extensions::new(), - SagittariusDataTypeUpdateRequest { data_types }, - ); - - match self.client.update(request).await { - Ok(response) => { - info(format!( - "Successfully transferred data types. Did Sagittarius updated them? {:?}", - &response.into_inner().success - )); - } - Err(err) => { - error_without_trace(format!("Failed to update DataTypes: {:?}", err)); - } - }; - } -} 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 226c9f7..0000000 --- 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 ec40e30..0000000 --- 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 a8bec22..ae4f307 100644 --- a/crates/cli/src/command/push/mod.rs +++ b/crates/cli/src/command/push/mod.rs @@ -1,12 +1,6 @@ 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; mod auth; -mod data_type_client_impl; -mod flow_type_client_impl; -mod function_client_impl; pub async fn push( token: String, @@ -22,51 +16,6 @@ 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; + todo!("Implement Sagittarius Module Service Client Endpoint!") } From a8cb7da92173170121f855cb44ef7f94d9282d0b Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 15:54:40 +0200 Subject: [PATCH 07/16] feat: added new definition types (`RuntimeFlowTypes`, `Functions`, `ModuleConfigurationDefinition`) --- crates/cli/src/analyser/core.rs | 3 +- crates/cli/src/analyser/loader.rs | 8 +- crates/cli/src/command/feature.rs | 82 ------- crates/cli/src/command/mod.rs | 2 +- crates/cli/src/command/report.rs | 39 ++-- crates/cli/src/command/search.rs | 68 +++++- crates/cli/src/command/search_module.rs | 124 +++++++++++ crates/cli/src/diagnostics/diagnose.rs | 2 +- crates/cli/src/main.rs | 7 +- crates/cli/src/parser.rs | 281 ++++++++---------------- crates/cli/src/reader.rs | 175 +++++++++++++++ crates/cli/src/table.rs | 125 +++++++++-- 12 files changed, 598 insertions(+), 318 deletions(-) delete mode 100644 crates/cli/src/command/feature.rs create mode 100644 crates/cli/src/command/search_module.rs create mode 100644 crates/cli/src/reader.rs diff --git a/crates/cli/src/analyser/core.rs b/crates/cli/src/analyser/core.rs index cec94cb..3d3dadf 100644 --- a/crates/cli/src/analyser/core.rs +++ b/crates/cli/src/analyser/core.rs @@ -1,8 +1,7 @@ -use crate::analyser::index_identifier::IdentifierIndex; +use crate::{analyser::index_identifier::IdentifierIndex, reader::Meta}; 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}; #[derive(Clone)] diff --git a/crates/cli/src/analyser/loader.rs b/crates/cli/src/analyser/loader.rs index c7cafb6..fb5c448 100644 --- a/crates/cli/src/analyser/loader.rs +++ b/crates/cli/src/analyser/loader.rs @@ -1,9 +1,10 @@ use super::core::{AnalysableDataType, AnalysableFlowType, AnalysableFunction, Analyser}; -use crate::analyser::index_identifier::IdentifierIndex; use crate::diagnostics::diagnose::Diagnose; use crate::diagnostics::kinds::DiagnosticKind; use crate::diagnostics::reporter::Reporter; -use crate::parser::{MetaType, Parser, Reader}; +use crate::parser::Parser; +use crate::reader::MetaType; +use crate::{analyser::index_identifier::IdentifierIndex, reader::Reader}; use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; pub fn load_from_path(path: &str) -> Analyser { @@ -130,6 +131,9 @@ pub fn load_from_path(path: &str) -> Analyser { } } } + MetaType::RuntimeFlowType => todo!(), + MetaType::Function => todo!(), + MetaType::Configs => todo!(), } } Analyser { diff --git a/crates/cli/src/command/feature.rs b/crates/cli/src/command/feature.rs deleted file mode 100644 index 6387725..0000000 --- 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 76ca057..550d8d7 100644 --- a/crates/cli/src/command/mod.rs +++ b/crates/cli/src/command/mod.rs @@ -1,5 +1,5 @@ pub mod download; -pub mod feature; +pub mod search_module; pub mod push; pub mod report; pub mod search; diff --git a/crates/cli/src/command/report.rs b/crates/cli/src/command/report.rs index 17f64f8..bdaae59 100644 --- a/crates/cli/src/command/report.rs +++ b/crates/cli/src/command/report.rs @@ -1,3 +1,5 @@ +use tucana::shared::Module; + use crate::analyser::core::Analyser; use crate::formatter::{success, success_table}; use crate::parser::Parser; @@ -15,27 +17,32 @@ pub fn report_errors(path: Option) { 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 223a1ab..b5217aa 100644 --- a/crates/cli/src/command/search.rs +++ b/crates/cli/src/command/search.rs @@ -20,7 +20,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 +108,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 0000000..a931492 --- /dev/null +++ b/crates/cli/src/command/search_module.rs @@ -0,0 +1,124 @@ +use tucana::shared::Module; + +use crate::analyser::core::Analyser; +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"); + } + }; + + 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/diagnostics/diagnose.rs b/crates/cli/src/diagnostics/diagnose.rs index a127842..d80368f 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)] diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index aca796f..c79a87b 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 2cd5369..8f138f3 100644 --- a/crates/cli/src/parser.rs +++ b/crates/cli/src/parser.rs @@ -1,41 +1,71 @@ use serde::Serialize; -use std::io::ErrorKind; -use std::{ - fs::{self, DirEntry}, - io::Error, - path::Path, +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 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, Clone, Debug, Default)] +pub struct ModuleConfiguration { + pub identifier: String, + pub name: Vec, + pub description: Vec, + pub documentation: String, + pub author: String, + pub icon: String, + 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 +78,29 @@ impl Parser { } pub fn from_reader(reader: Reader) -> Self { - let mut features: Vec = vec![]; + let mut modules: Vec = vec![]; for meta in &reader.meta { - let feature = features.iter_mut().find(|f| f.name == meta.name); + let module = modules + .iter_mut() + .find(|m| m.config.identifier == meta.name); - if let Some(existing) = feature { + if let Some(existing) = module { Parser::append_meta(existing, meta); } 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); } } - 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 +124,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) { @@ -124,169 +156,40 @@ impl Parser { }), } } - } - } -} - -#[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, + 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, + 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::RuntimeFlowType, + ), + definition_type: MetaType::RuntimeFlowType, + 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 0000000..9130d9f --- /dev/null +++ b/crates/cli/src/reader.rs @@ -0,0 +1,175 @@ +use std::{ + fs::{self, DirEntry}, + io::{Error, ErrorKind}, + path::Path, +}; + +use serde::Serialize; + +#[derive(Serialize, Debug, Clone, Copy)] +pub enum MetaType { + 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"), + } + } +} + +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: +/// - +/// - +/// - +/// - +/// - +/// - +/// - +/// - +/// - +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); + } + } + } + } + } + } + + 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/table.rs b/crates/cli/src/table.rs index 09a28d9..c817a9c 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() } From 248a86535089eb520d10cf6296ad7be909ab456d Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 16:44:46 +0200 Subject: [PATCH 08/16] feat: adjusted module json --- definitions/draco_cron/module.json | 33 +-- .../runtime_flow_types/cron.proto.json | 238 +++++++++--------- definitions/draco_rest/module.json | 33 +-- .../runtime_flow_types/rest.proto.json | 68 ++--- definitions/taurus/boolean/module.json | 33 +-- definitions/taurus/control/module.json | 33 +-- definitions/taurus/http/module.json | 33 +-- definitions/taurus/list/module.json | 33 +-- definitions/taurus/number/module.json | 33 +-- definitions/taurus/object/module.json | 33 +-- definitions/taurus/text/module.json | 33 +-- 11 files changed, 309 insertions(+), 294 deletions(-) diff --git a/definitions/draco_cron/module.json b/definitions/draco_cron/module.json index a47cf59..12dab30 100644 --- a/definitions/draco_cron/module.json +++ b/definitions/draco_cron/module.json @@ -1,18 +1,19 @@ { - "identifier": "draco-cron", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "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", + "version": "1.0.0" } diff --git a/definitions/draco_cron/runtime_flow_types/cron.proto.json b/definitions/draco_cron/runtime_flow_types/cron.proto.json index 976978a..67438d6 100644 --- a/definitions/draco_cron/runtime_flow_types/cron.proto.json +++ b/definitions/draco_cron/runtime_flow_types/cron.proto.json @@ -1,118 +1,124 @@ { - "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"] + "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/draco_rest/module.json b/definitions/draco_rest/module.json index 7984c0b..87c2910 100644 --- a/definitions/draco_rest/module.json +++ b/definitions/draco_rest/module.json @@ -1,18 +1,19 @@ { - "identifier": "draco-rest", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "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", + "version": "1.0.0" } diff --git a/definitions/draco_rest/runtime_flow_types/rest.proto.json b/definitions/draco_rest/runtime_flow_types/rest.proto.json index 92ddeb9..dba7236 100644 --- a/definitions/draco_rest/runtime_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/taurus/boolean/module.json b/definitions/taurus/boolean/module.json index cc43c75..447b6a7 100644 --- a/definitions/taurus/boolean/module.json +++ b/definitions/taurus/boolean/module.json @@ -1,18 +1,19 @@ { - "identifier": "taurus", - "name": [ - { - "code": "en-US", - "content": "Boolean" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "identifier": "taurus-boolean", + "name": [ + { + "code": "en-US", + "content": "Boolean" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Booleans." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:toggle-left", + "version": "1.0.0" } diff --git a/definitions/taurus/control/module.json b/definitions/taurus/control/module.json index 775b233..52081ac 100644 --- a/definitions/taurus/control/module.json +++ b/definitions/taurus/control/module.json @@ -1,18 +1,19 @@ { - "identifier": "cron", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "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", + "version": "1.0.0" } diff --git a/definitions/taurus/http/module.json b/definitions/taurus/http/module.json index 775b233..064b66f 100644 --- a/definitions/taurus/http/module.json +++ b/definitions/taurus/http/module.json @@ -1,18 +1,19 @@ { - "identifier": "cron", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "identifier": "taurus-http", + "name": [ + { + "code": "en-US", + "content": "HTTP" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with HTTP." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:world-www", + "version": "1.0.0" } diff --git a/definitions/taurus/list/module.json b/definitions/taurus/list/module.json index 775b233..83ec186 100644 --- a/definitions/taurus/list/module.json +++ b/definitions/taurus/list/module.json @@ -1,18 +1,19 @@ { - "identifier": "cron", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "identifier": "taurus-list", + "name": [ + { + "code": "en-US", + "content": "List" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Lists" + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:list", + "version": "1.0.0" } diff --git a/definitions/taurus/number/module.json b/definitions/taurus/number/module.json index 775b233..15b7eee 100644 --- a/definitions/taurus/number/module.json +++ b/definitions/taurus/number/module.json @@ -1,18 +1,19 @@ { - "identifier": "cron", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "identifier": "taurus-number", + "name": [ + { + "code": "en-US", + "content": "Number" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Numbers." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:math-function", + "version": "1.0.0" } diff --git a/definitions/taurus/object/module.json b/definitions/taurus/object/module.json index 775b233..e122217 100644 --- a/definitions/taurus/object/module.json +++ b/definitions/taurus/object/module.json @@ -1,18 +1,19 @@ { - "identifier": "cron", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "identifier": "taurus-object", + "name": [ + { + "code": "en-US", + "content": "Object" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Objects." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:cube", + "version": "1.0.0" } diff --git a/definitions/taurus/text/module.json b/definitions/taurus/text/module.json index 775b233..c851304 100644 --- a/definitions/taurus/text/module.json +++ b/definitions/taurus/text/module.json @@ -1,18 +1,19 @@ { - "identifier": "cron", - "name": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "description": [ - { - "code": "en-US", - "content": "Cron" - } - ], - "documentation": "", - "author": "CodeZero", - "icon": "tabler:alarm" + "identifier": "taurus-text", + "name": [ + { + "code": "en-US", + "content": "Text" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Text." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:abc", + "version": "1.0.0" } From b2716de0565c838d94c997f37d198c6245b42174 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 16:45:28 +0200 Subject: [PATCH 09/16] feat: correct file parsing --- crates/cli/src/analyser/core.rs | 2 +- crates/cli/src/command/mod.rs | 3 +- crates/cli/src/command/parse_errors.rs | 30 +++ crates/cli/src/command/report.rs | 2 + crates/cli/src/command/search.rs | 2 + crates/cli/src/command/search_module.rs | 2 + crates/cli/src/parser.rs | 44 +++-- crates/cli/src/reader.rs | 232 ++++++++++++++++++------ 8 files changed, 249 insertions(+), 68 deletions(-) create mode 100644 crates/cli/src/command/parse_errors.rs diff --git a/crates/cli/src/analyser/core.rs b/crates/cli/src/analyser/core.rs index 3d3dadf..ccc568f 100644 --- a/crates/cli/src/analyser/core.rs +++ b/crates/cli/src/analyser/core.rs @@ -1,7 +1,7 @@ -use crate::{analyser::index_identifier::IdentifierIndex, reader::Meta}; use crate::diagnostics::diagnose::Diagnose; use crate::diagnostics::kinds::DiagnosticKind; use crate::diagnostics::reporter::Reporter; +use crate::{analyser::index_identifier::IdentifierIndex, reader::Meta}; use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; #[derive(Clone)] diff --git a/crates/cli/src/command/mod.rs b/crates/cli/src/command/mod.rs index 550d8d7..90365c8 100644 --- a/crates/cli/src/command/mod.rs +++ b/crates/cli/src/command/mod.rs @@ -1,6 +1,7 @@ pub mod download; -pub mod search_module; +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 0000000..5dbc18a --- /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/report.rs b/crates/cli/src/command/report.rs index bdaae59..ead8b60 100644 --- a/crates/cli/src/command/report.rs +++ b/crates/cli/src/command/report.rs @@ -1,6 +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; @@ -14,6 +15,7 @@ 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); diff --git a/crates/cli/src/command/search.rs b/crates/cli/src/command/search.rs index b5217aa..38b0e21 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); } diff --git a/crates/cli/src/command/search_module.rs b/crates/cli/src/command/search_module.rs index a931492..6ad32af 100644 --- a/crates/cli/src/command/search_module.rs +++ b/crates/cli/src/command/search_module.rs @@ -1,6 +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::{DefinitionModule, Parser}; use crate::table::{module_table, summary_table}; @@ -14,6 +15,7 @@ pub fn search_module(name: Option, path: Option) { panic!("Error reading definitions"); } }; + fail_on_parser_errors(&parser); let mut analyser = Analyser::new(dir_path.as_str()); analyser.report(true, true); diff --git a/crates/cli/src/parser.rs b/crates/cli/src/parser.rs index 8f138f3..06c0f48 100644 --- a/crates/cli/src/parser.rs +++ b/crates/cli/src/parser.rs @@ -1,4 +1,5 @@ -use serde::Serialize; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; use tucana::shared::{ DefinitionDataType, FlowType, FunctionDefinition, Module, ModuleConfigurationDefinition, RuntimeFlowType, RuntimeFunctionDefinition, Translation, @@ -10,6 +11,7 @@ use crate::reader::{Meta, MetaType, Reader}; pub struct DefinitionError { pub definition: String, pub definition_type: crate::reader::MetaType, + pub path: String, pub error: String, } @@ -18,7 +20,7 @@ pub struct Parser { pub modules: Vec, } -#[derive(Serialize, Clone, Debug, Default)] +#[derive(Serialize, Deserialize, Clone, Debug, Default)] pub struct ModuleConfiguration { pub identifier: String, pub name: Vec, @@ -26,6 +28,7 @@ pub struct ModuleConfiguration { pub documentation: String, pub author: String, pub icon: String, + #[serde(default, skip_serializing_if = "String::is_empty")] pub version: String, } @@ -79,19 +82,21 @@ impl Parser { pub fn from_reader(reader: Reader) -> Self { let mut modules: Vec = vec![]; + let mut module_indices_by_name: HashMap = HashMap::new(); for meta in &reader.meta { - let module = modules - .iter_mut() - .find(|m| m.config.identifier == meta.name); - - if let Some(existing) = module { - Parser::append_meta(existing, meta); + let module_index = if let Some(index) = module_indices_by_name.get(&meta.name) { + *index } else { 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 { modules } @@ -132,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(), }), }, @@ -140,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(), }), }, @@ -152,6 +159,7 @@ impl Parser { MetaType::RuntimeFunction, ), definition_type: MetaType::RuntimeFunction, + path: meta.path.clone(), error: err.to_string(), }), } @@ -165,6 +173,7 @@ impl Parser { MetaType::RuntimeFlowType, ), definition_type: MetaType::RuntimeFlowType, + path: meta.path.clone(), error: err.to_string(), }), } @@ -174,18 +183,31 @@ impl Parser { 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::RuntimeFlowType, + MetaType::ModuleDefinition, ), - definition_type: MetaType::RuntimeFlowType, + definition_type: MetaType::ModuleDefinition, + path: meta.path.clone(), error: err.to_string(), }), } diff --git a/crates/cli/src/reader.rs b/crates/cli/src/reader.rs index 9130d9f..b9c5211 100644 --- a/crates/cli/src/reader.rs +++ b/crates/cli/src/reader.rs @@ -1,13 +1,14 @@ use std::{ fs::{self, DirEntry}, io::{Error, ErrorKind}, - path::Path, + path::{Path, PathBuf}, }; use serde::Serialize; #[derive(Serialize, Debug, Clone, Copy)] pub enum MetaType { + ModuleDefinition, FlowType, RuntimeFlowType, DataType, @@ -25,6 +26,7 @@ impl std::fmt::Display for MetaType { MetaType::RuntimeFlowType => write!(f, "RuntimeFlowType"), MetaType::Function => write!(f, "Function"), MetaType::Configs => write!(f, "Configs"), + MetaType::ModuleDefinition => write!(f, "ModuleConfiguration"), } } } @@ -82,83 +84,79 @@ impl Meta { /// /// 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); - // 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, - }; + if !root.exists() || !root.is_dir() { + return None; + } - let feature_name = match get_file_name(&feature_path_result) { - Some(file_name) => file_name, - None => continue, + 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() { + if 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, }; - // Reading the feature folder - for type_path in fs::read_dir(feature_path_result.path()).unwrap() { + 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 name.as_str() { - "flow_type" => MetaType::FlowType, - "data_type" => MetaType::DataType, - "runtime_definition" => MetaType::RuntimeFunction, - _ => continue, + Some(name) => match meta_type_from_dir_name(name.as_str()) { + Some(meta_type) => meta_type, + None => 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); - } - } + 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); } } } @@ -167,6 +165,130 @@ impl Reader { 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() From 45f83e1e49e73c9e6b075d3df529a80ab24e994a Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 16:55:51 +0200 Subject: [PATCH 10/16] feat: added analyzer for new definition types --- crates/cli/src/analyser/core.rs | 50 +++++- .../cli/src/analyser/function_definition.rs | 141 +++++++++++++++ crates/cli/src/analyser/index_identifier.rs | 34 ++++ crates/cli/src/analyser/loader.rs | 170 +++++++++++++++++- crates/cli/src/analyser/mod.rs | 4 + .../module_configuration_definition.rs | 69 +++++++ crates/cli/src/analyser/module_definition.rs | 52 ++++++ crates/cli/src/analyser/runtime_flow_type.rs | 119 ++++++++++++ 8 files changed, 632 insertions(+), 7 deletions(-) create mode 100644 crates/cli/src/analyser/function_definition.rs create mode 100644 crates/cli/src/analyser/module_configuration_definition.rs create mode 100644 crates/cli/src/analyser/module_definition.rs create mode 100644 crates/cli/src/analyser/runtime_flow_type.rs diff --git a/crates/cli/src/analyser/core.rs b/crates/cli/src/analyser/core.rs index ccc568f..d675c40 100644 --- a/crates/cli/src/analyser/core.rs +++ b/crates/cli/src/analyser/core.rs @@ -1,8 +1,12 @@ use crate::diagnostics::diagnose::Diagnose; use crate::diagnostics::kinds::DiagnosticKind; use crate::diagnostics::reporter::Reporter; +use crate::parser::ModuleConfiguration; use crate::{analyser::index_identifier::IdentifierIndex, reader::Meta}; -use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; +use tucana::shared::{ + DefinitionDataType, FlowType, FunctionDefinition, ModuleConfigurationDefinition, + RuntimeFlowType, RuntimeFunctionDefinition, +}; #[derive(Clone)] pub struct AnalysableDataType { @@ -25,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 { @@ -49,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/function_definition.rs b/crates/cli/src/analyser/function_definition.rs new file mode 100644 index 0000000..1a0e75c --- /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 3ed4bb2..7517bd1 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 fb5c448..ee309f5 100644 --- a/crates/cli/src/analyser/loader.rs +++ b/crates/cli/src/analyser/loader.rs @@ -1,11 +1,18 @@ -use super::core::{AnalysableDataType, AnalysableFlowType, AnalysableFunction, Analyser}; +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::Parser; +use crate::parser::{ModuleConfiguration, Parser}; use crate::reader::MetaType; use crate::{analyser::index_identifier::IdentifierIndex, reader::Reader}; -use tucana::shared::{DefinitionDataType, FlowType, RuntimeFunctionDefinition}; +use tucana::shared::{ + DefinitionDataType, FlowType, FunctionDefinition, ModuleConfigurationDefinition, + RuntimeFlowType, RuntimeFunctionDefinition, +}; pub fn load_from_path(path: &str) -> Analyser { let mut reporter = Reporter::default(); @@ -15,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 { @@ -131,9 +144,150 @@ pub fn load_from_path(path: &str) -> Analyser { } } } - MetaType::RuntimeFlowType => todo!(), - MetaType::Function => todo!(), - MetaType::Configs => todo!(), + 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 { @@ -142,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 ff23c76..eb22140 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 0000000..42ac4db --- /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 0000000..69d0a56 --- /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 0000000..36f96c0 --- /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 }, + )); + } + } +} From 7635df82b0bb022f38c84958bfd96aed5b4e7557 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 16:56:08 +0200 Subject: [PATCH 11/16] feat: added new diagnostic kinds --- crates/cli/src/diagnostics/diagnose.rs | 21 +++++++++++++++++++++ crates/cli/src/diagnostics/kinds.rs | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/crates/cli/src/diagnostics/diagnose.rs b/crates/cli/src/diagnostics/diagnose.rs index d80368f..b5c2bf3 100644 --- a/crates/cli/src/diagnostics/diagnose.rs +++ b/crates/cli/src/diagnostics/diagnose.rs @@ -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 6e5a6ab..3195ad0 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 { .. } From 854ebaccdf5a546bb65a54efdb0a426f0fc89bbf Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 17:34:22 +0200 Subject: [PATCH 12/16] drop: removed version field --- definitions/draco_cron/module.json | 3 +-- definitions/draco_rest/module.json | 33 +++++++++++++------------- definitions/taurus/boolean/module.json | 3 +-- definitions/taurus/control/module.json | 33 +++++++++++++------------- definitions/taurus/http/module.json | 3 +-- definitions/taurus/list/module.json | 3 +-- definitions/taurus/number/module.json | 33 +++++++++++++------------- definitions/taurus/object/module.json | 33 +++++++++++++------------- definitions/taurus/text/module.json | 33 +++++++++++++------------- 9 files changed, 84 insertions(+), 93 deletions(-) diff --git a/definitions/draco_cron/module.json b/definitions/draco_cron/module.json index 12dab30..15d8f5d 100644 --- a/definitions/draco_cron/module.json +++ b/definitions/draco_cron/module.json @@ -14,6 +14,5 @@ ], "documentation": "", "author": "CodeZero", - "icon": "tabler:file-time", - "version": "1.0.0" + "icon": "tabler:file-time" } diff --git a/definitions/draco_rest/module.json b/definitions/draco_rest/module.json index 87c2910..663b441 100644 --- a/definitions/draco_rest/module.json +++ b/definitions/draco_rest/module.json @@ -1,19 +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", - "version": "1.0.0" + "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/taurus/boolean/module.json b/definitions/taurus/boolean/module.json index 447b6a7..352d0ae 100644 --- a/definitions/taurus/boolean/module.json +++ b/definitions/taurus/boolean/module.json @@ -14,6 +14,5 @@ ], "documentation": "", "author": "CodeZero", - "icon": "tabler:toggle-left", - "version": "1.0.0" + "icon": "tabler:toggle-left" } diff --git a/definitions/taurus/control/module.json b/definitions/taurus/control/module.json index 52081ac..5c95ff3 100644 --- a/definitions/taurus/control/module.json +++ b/definitions/taurus/control/module.json @@ -1,19 +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", - "version": "1.0.0" + "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/taurus/http/module.json b/definitions/taurus/http/module.json index 064b66f..b08d251 100644 --- a/definitions/taurus/http/module.json +++ b/definitions/taurus/http/module.json @@ -14,6 +14,5 @@ ], "documentation": "", "author": "CodeZero", - "icon": "tabler:world-www", - "version": "1.0.0" + "icon": "tabler:world-www" } diff --git a/definitions/taurus/list/module.json b/definitions/taurus/list/module.json index 83ec186..b12d595 100644 --- a/definitions/taurus/list/module.json +++ b/definitions/taurus/list/module.json @@ -14,6 +14,5 @@ ], "documentation": "", "author": "CodeZero", - "icon": "tabler:list", - "version": "1.0.0" + "icon": "tabler:list" } diff --git a/definitions/taurus/number/module.json b/definitions/taurus/number/module.json index 15b7eee..d9e2f46 100644 --- a/definitions/taurus/number/module.json +++ b/definitions/taurus/number/module.json @@ -1,19 +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", - "version": "1.0.0" + "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/taurus/object/module.json b/definitions/taurus/object/module.json index e122217..e7bea62 100644 --- a/definitions/taurus/object/module.json +++ b/definitions/taurus/object/module.json @@ -1,19 +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", - "version": "1.0.0" + "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/taurus/text/module.json b/definitions/taurus/text/module.json index c851304..4acb39e 100644 --- a/definitions/taurus/text/module.json +++ b/definitions/taurus/text/module.json @@ -1,19 +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", - "version": "1.0.0" + "identifier": "taurus-text", + "name": [ + { + "code": "en-US", + "content": "Text" + } + ], + "description": [ + { + "code": "en-US", + "content": "Work with Text." + } + ], + "documentation": "", + "author": "CodeZero", + "icon": "tabler:abc" } From 5209e6c720c2012d075d9159e1099c487cf9e964 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 18:20:04 +0200 Subject: [PATCH 13/16] feat: push command will use module service instead of old service structure --- crates/cli/src/command/push/mod.rs | 51 ++++++++++++++++++- .../push/module_service_client_impl.rs | 49 ++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 crates/cli/src/command/push/module_service_client_impl.rs diff --git a/crates/cli/src/command/push/mod.rs b/crates/cli/src/command/push/mod.rs index ae4f307..72e6182 100644 --- a/crates/cli/src/command/push/mod.rs +++ b/crates/cli/src/command/push/mod.rs @@ -1,6 +1,34 @@ -use crate::analyser::core::Analyser; +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 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, @@ -17,5 +45,24 @@ pub async fn push( let mut analyzer = Analyser::new(dir_path.as_str()); analyzer.report(false, true); - todo!("Implement Sagittarius Module Service Client Endpoint!") + + 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/module_service_client_impl.rs b/crates/cli/src/command/push/module_service_client_impl.rs new file mode 100644 index 0000000..13ff08d --- /dev/null +++ b/crates/cli/src/command/push/module_service_client_impl.rs @@ -0,0 +1,49 @@ +use crate::command::push::auth::get_authorization_metadata; +use crate::formatter::{error_without_trace, info}; +use tonic::{Extensions, Request, transport::Channel}; +use tucana::sagittarius::ModuleUpdateRequest; +use tucana::sagittarius::module_service_client::ModuleServiceClient; +use tucana::shared::Module; + +pub struct SagittariusModuleServiceClient { + client: ModuleServiceClient, + token: String, +} + +impl SagittariusModuleServiceClient { + pub async fn new(sagittarius_url: String, token: String) -> Self { + let client = match ModuleServiceClient::connect(sagittarius_url).await { + Ok(client) => { + info(String::from( + "Successfully connected to Sagittarius Module Service Endpoint!", + )); + client + } + Err(err) => panic!( + "Failed to connect to Sagittarius (Module Service Endpoint): {:?}", + err + ), + }; + Self { client, token } + } + + pub async fn update(&mut self, modules: Vec) { + let request = Request::from_parts( + get_authorization_metadata(&self.token), + Extensions::new(), + ModuleUpdateRequest { modules }, + ); + + match self.client.update(request).await { + Ok(response) => { + info(format!( + "Successfully transferred data types. Did Sagittarius updated them? {:?}", + &response.into_inner().success + )); + } + Err(err) => { + error_without_trace(format!("Failed to update DataTypes: {:?}", err)); + } + }; + } +} From 19cb5992d264a852a83c01d63404ab589d0df415 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 18:21:20 +0200 Subject: [PATCH 14/16] ref: cargo clippy --- crates/cli/src/analyser/data_type.rs | 2 +- crates/cli/src/analyser/flow_type.rs | 2 +- crates/cli/src/analyser/function.rs | 2 +- crates/cli/src/command/search_module.rs | 2 +- crates/cli/src/command/watch.rs | 5 ++--- crates/cli/src/reader.rs | 5 ++--- 6 files changed, 8 insertions(+), 10 deletions(-) diff --git a/crates/cli/src/analyser/data_type.rs b/crates/cli/src/analyser/data_type.rs index fb6e5de..62cd544 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 4f2bdb5..9f679d4 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 7f63028..6801fce 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/command/search_module.rs b/crates/cli/src/command/search_module.rs index 6ad32af..48ebe94 100644 --- a/crates/cli/src/command/search_module.rs +++ b/crates/cli/src/command/search_module.rs @@ -102,7 +102,7 @@ pub fn search_module(name: Option, path: Option) { .map(|x| x.into_module()) .collect(); - let summary = summary_table(&mods); + let summary = summary_table(mods); success_table(summary); success(format!( diff --git a/crates/cli/src/command/watch.rs b/crates/cli/src/command/watch.rs index 3eb8f4f..a289aae 100644 --- a/crates/cli/src/command/watch.rs +++ b/crates/cli/src/command/watch.rs @@ -39,8 +39,8 @@ 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) { + EventKind::Remove(_) + if last_run.elapsed() > Duration::from_millis(500) => { default(String::from( "\n\n\n--------------------------------------------------------------------------\n\n", )); @@ -48,7 +48,6 @@ pub async fn watch_for_changes(path: Option, with_warning: bool) { Analyser::new(dir_path.as_str()).report(false, with_warning); last_run = Instant::now(); } - } _ => {} } } diff --git a/crates/cli/src/reader.rs b/crates/cli/src/reader.rs index b9c5211..8d47c18 100644 --- a/crates/cli/src/reader.rs +++ b/crates/cli/src/reader.rs @@ -108,15 +108,14 @@ impl Reader { // Handle direct module definition file. let module_definition_file = module_path.join("module.json"); - if module_definition_file.is_file() { - if let Ok(meta_result) = Meta::read_from_file( + 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) { From 5704afedd18bbd43a84efee24610d1625c922583 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 26 Apr 2026 18:22:15 +0200 Subject: [PATCH 15/16] ref: cargo fmt --- crates/cli/src/command/watch.rs | 17 ++++++++--------- crates/cli/src/reader.rs | 7 ++++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/crates/cli/src/command/watch.rs b/crates/cli/src/command/watch.rs index a289aae..48a11ae 100644 --- a/crates/cli/src/command/watch.rs +++ b/crates/cli/src/command/watch.rs @@ -39,15 +39,14 @@ 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/reader.rs b/crates/cli/src/reader.rs index 8d47c18..879f14a 100644 --- a/crates/cli/src/reader.rs +++ b/crates/cli/src/reader.rs @@ -113,9 +113,10 @@ impl Reader { module_name.clone(), MetaType::ModuleDefinition, module_definition_file, - ) { - result.push(meta_result); - } + ) + { + result.push(meta_result); + } // Handle all typed definition directories. let type_entries = match fs::read_dir(&module_path) { From d45e08599b61b1e290d94459b54758c5eb2fd4fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20G=C3=B6tz?= <52959657+raphael-goetz@users.noreply.github.com> Date: Sun, 26 Apr 2026 18:28:24 +0200 Subject: [PATCH 16/16] Update crates/cli/src/reader.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Raphael Götz <52959657+raphael-goetz@users.noreply.github.com> --- crates/cli/src/reader.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/cli/src/reader.rs b/crates/cli/src/reader.rs index 879f14a..21b056a 100644 --- a/crates/cli/src/reader.rs +++ b/crates/cli/src/reader.rs @@ -26,7 +26,7 @@ impl std::fmt::Display for MetaType { MetaType::RuntimeFlowType => write!(f, "RuntimeFlowType"), MetaType::Function => write!(f, "Function"), MetaType::Configs => write!(f, "Configs"), - MetaType::ModuleDefinition => write!(f, "ModuleConfiguration"), + MetaType::ModuleDefinition => write!(f, "ModuleDefinition"), } } }