From fae12b234d73c3b6d65de9b76eec65b74cf2187a Mon Sep 17 00:00:00 2001 From: Brandon Vandegrift <798832-bmv437@users.noreply.gitlab.com> Date: Tue, 15 Aug 2023 13:47:26 -0400 Subject: [PATCH 1/2] Fix veilid-wasm errors so it compiles, emit TypeScript types. - `wrap_api_future` function did not exist, so I used `wrap_api_future_plain` since the return type appears to be a base64 encoded string. - Argument order for `create_dht_record` was incorrectly swapped. - `veilid_core::json_as_base64` does not exist, don't exactly know what to replace it with for serde serialization, but I commented it out for now. - Removed `--no-typescript` flag from `wasm-buildgen` so that TypeScript types are emitted. --- veilid-wasm/src/lib.rs | 14 +++++++------- veilid-wasm/wasm_build.sh | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/veilid-wasm/src/lib.rs b/veilid-wasm/src/lib.rs index 085e3f3f..9be48c6f 100644 --- a/veilid-wasm/src/lib.rs +++ b/veilid-wasm/src/lib.rs @@ -161,7 +161,7 @@ pub struct VeilidWASMConfig { #[derive(Debug, Deserialize, Serialize)] pub struct VeilidRouteBlob { pub route_id: veilid_core::RouteId, - #[serde(with = "veilid_core::json_as_base64")] + // #[serde(with = "veilid_core::json_as_base64")] pub blob: Vec, } @@ -429,7 +429,7 @@ pub fn routing_context_create_dht_record(id: u32, schema: String, kind: u32) -> }; let dht_record_descriptor = routing_context - .create_dht_record(crypto_kind, schema) + .create_dht_record(schema, crypto_kind) .await?; APIResult::Ok(dht_record_descriptor) }) @@ -1347,7 +1347,7 @@ pub fn crypto_decrypt_aead( .unwrap() }); - wrap_api_future(async move { + wrap_api_future_plain(async move { let veilid_api = get_veilid_api()?; let crypto = veilid_api.crypto()?; let csv = crypto.get(kind).ok_or_else(|| { @@ -1396,7 +1396,7 @@ pub fn crypto_encrypt_aead( .unwrap() }); - wrap_api_future(async move { + wrap_api_future_plain(async move { let veilid_api = get_veilid_api()?; let crypto = veilid_api.crypto()?; let csv = crypto.get(kind).ok_or_else(|| { @@ -1438,7 +1438,7 @@ pub fn crypto_crypt_no_auth( let shared_secret: veilid_core::SharedSecret = veilid_core::deserialize_json(&shared_secret).unwrap(); - wrap_api_future(async move { + wrap_api_future_plain(async move { let veilid_api = get_veilid_api()?; let crypto = veilid_api.crypto()?; let csv = crypto.get(kind).ok_or_else(|| { @@ -1449,8 +1449,8 @@ pub fn crypto_crypt_no_auth( ) })?; csv.crypt_in_place_no_auth(&mut body, &nonce, &shared_secret); - let out = data_encoding::BASE64URL_NOPAD.encode(&out); - APIResult::Ok(body) + let out = data_encoding::BASE64URL_NOPAD.encode(&body); + APIResult::Ok(out) }) } diff --git a/veilid-wasm/wasm_build.sh b/veilid-wasm/wasm_build.sh index 093bbcc1..b450baeb 100755 --- a/veilid-wasm/wasm_build.sh +++ b/veilid-wasm/wasm_build.sh @@ -28,7 +28,7 @@ if [[ "$1" == "release" ]]; then cargo build --target wasm32-unknown-unknown --release mkdir -p $OUTPUTDIR - wasm-bindgen --out-dir $OUTPUTDIR --target web --no-typescript $INPUTDIR/veilid_wasm.wasm + wasm-bindgen --out-dir $OUTPUTDIR --target web $INPUTDIR/veilid_wasm.wasm wasm-strip $OUTPUTDIR/veilid_wasm_bg.wasm else OUTPUTDIR=../target/wasm32-unknown-unknown/debug/pkg @@ -36,7 +36,7 @@ else RUSTFLAGS="-O -g" cargo build --target wasm32-unknown-unknown mkdir -p $OUTPUTDIR - wasm-bindgen --out-dir $OUTPUTDIR --target web --no-typescript --keep-debug --debug $INPUTDIR/veilid_wasm.wasm + wasm-bindgen --out-dir $OUTPUTDIR --target web --keep-debug --debug $INPUTDIR/veilid_wasm.wasm ./wasm-sourcemap.py $OUTPUTDIR/veilid_wasm_bg.wasm -o $OUTPUTDIR/veilid_wasm_bg.wasm.map --dwarfdump $DWARFDUMP # wasm-strip $OUTPUTDIR/veilid_wasm_bg.wasm fi From 18dfe99e0959096a4e98bd82ae3887e4308ec82c Mon Sep 17 00:00:00 2001 From: Brandon Vandegrift <798832-bmv437@users.noreply.gitlab.com> Date: Wed, 16 Aug 2023 10:29:59 -0400 Subject: [PATCH 2/2] use as_human_base64 to serialize VeilidRouteBlob --- veilid-wasm/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/veilid-wasm/src/lib.rs b/veilid-wasm/src/lib.rs index 9be48c6f..c3fc7dcd 100644 --- a/veilid-wasm/src/lib.rs +++ b/veilid-wasm/src/lib.rs @@ -161,7 +161,7 @@ pub struct VeilidWASMConfig { #[derive(Debug, Deserialize, Serialize)] pub struct VeilidRouteBlob { pub route_id: veilid_core::RouteId, - // #[serde(with = "veilid_core::json_as_base64")] + #[serde(with = "veilid_core::as_human_base64")] pub blob: Vec, }