diff --git a/tools/ui/Cargo.lock b/tools/ui/Cargo.lock index 6155913e..e86c0387 100644 --- a/tools/ui/Cargo.lock +++ b/tools/ui/Cargo.lock @@ -111,9 +111,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "candid" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244005a1917bb7614cd775ca8a5d59efeb5ac74397bb14ba29a19347ebd78591" +checksum = "14881d34e5ad2b3e77dfbbdf3266d907f85d28faf214b843684f2e64e8acd6c7" dependencies = [ "anyhow", "binread", @@ -135,14 +135,15 @@ dependencies = [ "serde", "serde_bytes", "sha2", + "stacker", "thiserror", ] [[package]] name = "candid_derive" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f1f4db7c7d04b87b70b3a35c5dc5c2c9dd73cef8bdf6760e2f18a0d45350dd" +checksum = "041ce1020740a400035899b2909a6f4f275b79c8db502cbd59ace9b2cc88af58" dependencies = [ "lazy_static", "proc-macro2", @@ -218,7 +219,6 @@ version = "0.1.0" dependencies = [ "candid", "ic-cdk", - "ic-cdk-macros", "serde", "serde_bytes", ] @@ -349,9 +349,9 @@ checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" [[package]] name = "hermit-abi" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hex" @@ -361,12 +361,10 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "ic-cdk" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c98b304a2657bad15bcb547625a018e13cf596676d834cfd93023395a6e2e03a" +version = "0.10.0" +source = "git+https://github.com/dfinity/cdk-rs.git?branch=beta#b944119ce961979f8187202113b4a1122bcaa8a2" dependencies = [ "candid", - "cfg-if", "ic-cdk-macros", "ic0", "serde", @@ -375,9 +373,8 @@ dependencies = [ [[package]] name = "ic-cdk-macros" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf50458685a0fc6b0e414cdba487610aeb199ac94db52d9fd76270565debee7" +version = "0.7.0" +source = "git+https://github.com/dfinity/cdk-rs.git?branch=beta#b944119ce961979f8187202113b4a1122bcaa8a2" dependencies = [ "candid", "proc-macro2", @@ -390,8 +387,7 @@ dependencies = [ [[package]] name = "ic0" version = "0.18.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187fa0cecf46628330b7a390a1a65fb0637ea00d3a1121aa847ecbebc0f3ff79" +source = "git+https://github.com/dfinity/cdk-rs.git?branch=beta#b944119ce961979f8187202113b4a1122bcaa8a2" [[package]] name = "indexmap" @@ -415,9 +411,9 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", "rustix", @@ -435,9 +431,9 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.19.12" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b" +checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" dependencies = [ "ascii-canvas", "bit-set", @@ -447,8 +443,9 @@ dependencies = [ "itertools", "lalrpop-util", "petgraph", + "pico-args", "regex", - "regex-syntax 0.6.29", + "regex-syntax 0.7.3", "string_cache", "term", "tiny-keccak", @@ -457,9 +454,9 @@ dependencies = [ [[package]] name = "lalrpop-util" -version = "0.19.12" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed" +checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" dependencies = [ "regex", ] @@ -645,6 +642,12 @@ dependencies = [ "siphasher", ] +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + [[package]] name = "precomputed-hash" version = "0.1.1" @@ -680,6 +683,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + [[package]] name = "quote" version = "1.0.29" @@ -720,13 +732,25 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.4" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89089e897c013b3deb627116ae56a6955a72b8bed395c9526af31c9fe528b484" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax 0.7.3", +] + +[[package]] +name = "regex-automata" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" +checksum = "fa250384981ea14565685dea16a9ccc4d1c541a13f82b9c168572264d1df8c56" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.2", + "regex-syntax 0.7.3", ] [[package]] @@ -737,15 +761,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846" [[package]] name = "rustix" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc6396159432b5c8490d4e301d8c705f61860b8b6c863bf79942ce5401968f3" +checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4" dependencies = [ "bitflags 2.3.3", "errno", @@ -825,9 +849,22 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] [[package]] name = "string_cache" diff --git a/tools/ui/package-lock.json b/tools/ui/package-lock.json index 8b164bc9..c9c37080 100644 --- a/tools/ui/package-lock.json +++ b/tools/ui/package-lock.json @@ -8,9 +8,9 @@ "name": "ui", "version": "0.1.0", "devDependencies": { - "@dfinity/agent": "0.16.0", - "@dfinity/candid": "0.16.0", - "@dfinity/principal": "0.16.0", + "@dfinity/agent": "0.17.0", + "@dfinity/candid": "0.17.0", + "@dfinity/principal": "0.17.0", "buffer": "6.0.3", "copy-webpack-plugin": "^9.0.1", "css-loader": "^6.8.1", @@ -25,9 +25,9 @@ } }, "node_modules/@dfinity/agent": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.16.0.tgz", - "integrity": "sha512-3Wj+2Z6Wn8cXcXVkFY8nQufGMMrJDNlgLXj9xIwaBPF4b8VK+Mv4g7YttdMpZLOkH1rSNx90B+Fmp/XnUUpOZw==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.17.0.tgz", + "integrity": "sha512-pQJlxKvIxNlxsqp9Pkngheibnyr2gdLhz1BVkIBbQppqeczekk0u5jWkq75bkSob3C+EUrxEzKkcGeHbRWN9gw==", "dev": true, "dependencies": { "base64-arraybuffer": "^0.2.0", @@ -36,20 +36,20 @@ "simple-cbor": "^0.4.1" }, "peerDependencies": { - "@dfinity/candid": "^0.16.0", - "@dfinity/principal": "^0.16.0" + "@dfinity/candid": "^0.17.0", + "@dfinity/principal": "^0.17.0" } }, "node_modules/@dfinity/candid": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.16.0.tgz", - "integrity": "sha512-QyUmUxvub1jnYp+oaav5Hl1kXaxjmD42guEIk4xJIiVjt6FaVKN5jJlNoLlC1ENmKpj5FNpBu2RYDvIciWucXQ==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.17.0.tgz", + "integrity": "sha512-JPcj+1Kcb0+wo4GiDpDJzeCnxxRtSot5G64hzUlu4zqWEeE0OBh9hW0Pns3Np0RKJ5Sbgz+CYzLc+rm7AOy8OA==", "dev": true }, "node_modules/@dfinity/principal": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.16.0.tgz", - "integrity": "sha512-fKcxd0x2jtNp6PL3D9AajD500EEwGIrqolXdwwUYkj7MW10TJbCClk0lEkZxosOujMXfaAfqy7bv9bX63zeXeg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.17.0.tgz", + "integrity": "sha512-5dKYIWd+97xCruijsA7WW0YANZVtFSJFP+lrPiMv0jAxocVOs6/8PLpMQTBfA5ddeb3r+v1Y2PxrLAge2FVuTQ==", "dev": true, "dependencies": { "js-sha256": "^0.9.0" @@ -2777,9 +2777,9 @@ }, "dependencies": { "@dfinity/agent": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.16.0.tgz", - "integrity": "sha512-3Wj+2Z6Wn8cXcXVkFY8nQufGMMrJDNlgLXj9xIwaBPF4b8VK+Mv4g7YttdMpZLOkH1rSNx90B+Fmp/XnUUpOZw==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.17.0.tgz", + "integrity": "sha512-pQJlxKvIxNlxsqp9Pkngheibnyr2gdLhz1BVkIBbQppqeczekk0u5jWkq75bkSob3C+EUrxEzKkcGeHbRWN9gw==", "dev": true, "requires": { "base64-arraybuffer": "^0.2.0", @@ -2789,15 +2789,15 @@ } }, "@dfinity/candid": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.16.0.tgz", - "integrity": "sha512-QyUmUxvub1jnYp+oaav5Hl1kXaxjmD42guEIk4xJIiVjt6FaVKN5jJlNoLlC1ENmKpj5FNpBu2RYDvIciWucXQ==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.17.0.tgz", + "integrity": "sha512-JPcj+1Kcb0+wo4GiDpDJzeCnxxRtSot5G64hzUlu4zqWEeE0OBh9hW0Pns3Np0RKJ5Sbgz+CYzLc+rm7AOy8OA==", "dev": true }, "@dfinity/principal": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.16.0.tgz", - "integrity": "sha512-fKcxd0x2jtNp6PL3D9AajD500EEwGIrqolXdwwUYkj7MW10TJbCClk0lEkZxosOujMXfaAfqy7bv9bX63zeXeg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.17.0.tgz", + "integrity": "sha512-5dKYIWd+97xCruijsA7WW0YANZVtFSJFP+lrPiMv0jAxocVOs6/8PLpMQTBfA5ddeb3r+v1Y2PxrLAge2FVuTQ==", "dev": true, "requires": { "js-sha256": "^0.9.0" diff --git a/tools/ui/package.json b/tools/ui/package.json index 92b0b1bb..d67b6de1 100644 --- a/tools/ui/package.json +++ b/tools/ui/package.json @@ -7,9 +7,9 @@ "build": "webpack" }, "devDependencies": { - "@dfinity/agent": "0.16.0", - "@dfinity/candid": "0.16.0", - "@dfinity/principal": "0.16.0", + "@dfinity/agent": "0.17.0", + "@dfinity/candid": "0.17.0", + "@dfinity/principal": "0.17.0", "buffer": "6.0.3", "copy-webpack-plugin": "^9.0.1", "css-loader": "^6.8.1", diff --git a/tools/ui/src/didjs/Cargo.toml b/tools/ui/src/didjs/Cargo.toml index d3a0c8bc..a484fd26 100644 --- a/tools/ui/src/didjs/Cargo.toml +++ b/tools/ui/src/didjs/Cargo.toml @@ -8,8 +8,8 @@ path = "lib.rs" crate-type = ["cdylib"] [dependencies] -ic-cdk = "0.6" -ic-cdk-macros = "0.6" -candid = "0.8" +ic-cdk = { version = "0.10", git = "https://github.com/dfinity/cdk-rs.git", branch = "beta" } +candid = { version = "0.9", features = ["parser"] } serde = "1.0" serde_bytes = "0.11" + diff --git a/tools/ui/src/didjs/lib.rs b/tools/ui/src/didjs/lib.rs index 25f4deaa..d3e43612 100644 --- a/tools/ui/src/didjs/lib.rs +++ b/tools/ui/src/didjs/lib.rs @@ -1,6 +1,8 @@ use ic_cdk::export::candid::{ - candid_method, check_prog, export_service, types::subtype, types::Type, CandidType, - Deserialize, IDLProg, TypeEnv, + candid_method, check_prog, export_service, + types::subtype, + types::{Type, TypeInner}, + CandidType, Deserialize, IDLProg, TypeEnv, }; #[derive(CandidType, Deserialize)] @@ -23,7 +25,7 @@ pub struct HttpResponse { pub body: Vec, } -#[ic_cdk_macros::query] +#[ic_cdk::query] #[candid_method(query)] fn did_to_js(prog: String) -> Option { let ast = prog.parse::().ok()?; @@ -33,7 +35,7 @@ fn did_to_js(prog: String) -> Option { Some(res) } -#[ic_cdk_macros::query] +#[ic_cdk::query] #[candid_method(query)] fn binding(prog: String, lang: String) -> Option { use ic_cdk::export::candid::bindings; @@ -44,11 +46,13 @@ fn binding(prog: String, lang: String) -> Option { "ts" => bindings::typescript::compile(&env, &actor), "mo" => bindings::motoko::compile(&env, &actor), "installed_did" => { - let actor = if let Some(Type::Class(_, ty)) = actor { - Some(*ty) - } else { - actor - }; + let actor = actor.and_then(|t: Type| { + if let TypeInner::Class(_, ty) = t.as_ref() { + Some(ty.clone()) + } else { + Some(t) + } + }); bindings::candid::compile(&env, &actor) } _ => return None, @@ -56,7 +60,7 @@ fn binding(prog: String, lang: String) -> Option { Some(res) } -#[ic_cdk_macros::query] +#[ic_cdk::query] #[candid_method(query)] fn subtype(new: String, old: String) -> Result<(), String> { let new = new.parse::().unwrap(); @@ -67,8 +71,7 @@ fn subtype(new: String, old: String) -> Result<(), String> { let old_actor = check_prog(&mut old_env, &old).unwrap().unwrap(); let mut gamma = std::collections::HashSet::new(); let old_actor = new_env.merge_type(old_env, old_actor); - subtype::subtype(&mut gamma, &new_env, &new_actor, &old_actor) - .or_else(|e| Err(e.to_string())) + subtype::subtype(&mut gamma, &new_env, &new_actor, &old_actor).or_else(|e| Err(e.to_string())) } fn retrieve(path: &str) -> Option<&'static [u8]> { @@ -84,7 +87,7 @@ fn get_path(url: &str) -> Option<&str> { url.split('?').next() } -#[ic_cdk_macros::query] +#[ic_cdk::query] #[candid_method(query)] fn http_request(request: HttpRequest) -> HttpResponse { //TODO add /canister_id/ as endpoint when ICQC is available. @@ -110,7 +113,7 @@ fn http_request(request: HttpRequest) -> HttpResponse { export_service!(); -#[ic_cdk_macros::query(name = "__get_candid_interface_tmp_hack")] +#[ic_cdk::query(name = "__get_candid_interface_tmp_hack")] fn export_candid() -> String { __export_service() }