diff --git a/backend/Cargo.lock b/backend/Cargo.lock index cd4732b4e6..c0c63136b7 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -7188,9 +7188,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.81" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" dependencies = [ "once_cell", "wasm-bindgen", @@ -14778,9 +14778,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" dependencies = [ "cfg-if", "once_cell", @@ -14791,9 +14791,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.104" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" +checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" dependencies = [ "bumpalo", "log", @@ -14805,9 +14805,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.54" +version = "0.4.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" dependencies = [ "cfg-if", "js-sys", @@ -14818,9 +14818,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -14828,9 +14828,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" dependencies = [ "proc-macro2", "quote", @@ -14841,18 +14841,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" dependencies = [ "unicode-ident", ] [[package]] name = "wasm-bindgen-test" -version = "0.3.54" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e381134e148c1062f965a42ed1f5ee933eef2927c3f70d1812158f711d39865" +checksum = "aee0a0f5343de9221a0d233b04520ed8dc2e6728dce180b1dcd9288ec9d9fa3c" dependencies = [ "js-sys", "minicov", @@ -14863,9 +14863,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.54" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b673bca3298fe582aeef8352330ecbad91849f85090805582400850f8270a2e8" +checksum = "a369369e4360c2884c3168d22bded735c43cccae97bbc147586d4b480edd138d" dependencies = [ "proc-macro2", "quote", @@ -14912,9 +14912,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.81" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 2aa9a4f301..8554b389b2 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -331,7 +331,7 @@ once_cell = "1.17.1" gosyn = "0.2.6" bytes = "1.4.0" gethostname = "0.4.3" -wasm-bindgen = "^0" +wasm-bindgen = "=0.2.103" serde-wasm-bindgen = "^0" wasm-bindgen-test = "^0" convert_case = "0.6.0" diff --git a/backend/parsers/windmill-parser-wasm/Cargo.toml b/backend/parsers/windmill-parser-wasm/Cargo.toml index 0d60735a3a..40f53ecb48 100644 --- a/backend/parsers/windmill-parser-wasm/Cargo.toml +++ b/backend/parsers/windmill-parser-wasm/Cargo.toml @@ -1,10 +1,11 @@ +cargo-features = ["panic-immediate-abort"] + [package] name = "windmill-parser-wasm" version.workspace = true edition.workspace = true authors.workspace = true - [lib] crate-type = ["cdylib"] name = "windmill_parser_wasm" @@ -15,6 +16,13 @@ wasm-bindgen-test.workspace = true windmill-parser-ts.workspace = true windmill-parser-bash.workspace = true +[profile.release] +panic = "immediate-abort" + +[unstable] +build-std = ["std", "panic_abort"] + + [features] default = [] go-parser = [ "dep:windmill-parser-go"] @@ -48,5 +56,6 @@ windmill-parser-nu = { workspace = true, optional = true } windmill-parser-java = { workspace = true, optional = true } windmill-parser-ruby = { workspace = true, optional = true } wasm-bindgen.workspace = true + serde_json.workspace = true getrandom = { workspace = true, features = ["js"] } diff --git a/backend/parsers/windmill-parser-wasm/build.nu b/backend/parsers/windmill-parser-wasm/build.nu index 1ab87f9873..7c3bf9d4a6 100755 --- a/backend/parsers/windmill-parser-wasm/build.nu +++ b/backend/parsers/windmill-parser-wasm/build.nu @@ -112,7 +112,7 @@ def main [ print $"Building in ($profile) mode ($env.OUT_DIR)" match $t.env { "default" => { - wasm-pack build ($profile) --target ($tar) --out-dir $env.OUT_DIR --features ($t.features) -Z build-std=panic_abort,std -Z build-std-features=panic_immediate_abort + wasm-pack build --weak-refs ($profile) --target ($tar) --out-dir $env.OUT_DIR --features ($t.features) -Z build-std=panic_abort,std }, "tree-sitter" => { $env.CFLAGS_wasm32_unknown_unknown = $"-I(pwd)/wasm-sysroot -Wbad-function-cast -Wcast-function-type -fno-builtin" diff --git a/backend/parsers/windmill-parser-wasm/src/lib.rs b/backend/parsers/windmill-parser-wasm/src/lib.rs index d855910edd..f3b7929d38 100644 --- a/backend/parsers/windmill-parser-wasm/src/lib.rs +++ b/backend/parsers/windmill-parser-wasm/src/lib.rs @@ -1,7 +1,7 @@ #[cfg(feature = "ts-parser")] use serde_json::json; #[allow(unused_imports)] -use wasm_bindgen::prelude::*; +use wasm_bindgen::prelude::wasm_bindgen; use windmill_parser::MainArgSignature; #[cfg(feature = "ts-parser")] use windmill_parser_ts::{parse_expr_for_ids, parse_expr_for_imports}; diff --git a/cli/wasm/nu/windmill_parser_wasm.js b/cli/wasm/nu/windmill_parser_wasm.js index fc00a9ee3e..2f21f260da 100644 --- a/cli/wasm/nu/windmill_parser_wasm.js +++ b/cli/wasm/nu/windmill_parser_wasm.js @@ -56,13 +56,17 @@ function passStringToWasm0(arg, malloc, realloc) { return ptr; } -const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); +let cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; +function decodeText(ptr, len) { + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + function getStringFromWasm0(ptr, len) { ptr = ptr >>> 0; - return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); + return decodeText(ptr, len); } /** * @param {string} code diff --git a/cli/wasm/nu/windmill_parser_wasm_bg.js b/cli/wasm/nu/windmill_parser_wasm_bg.js new file mode 100644 index 0000000000..003c6ce549 --- /dev/null +++ b/cli/wasm/nu/windmill_parser_wasm_bg.js @@ -0,0 +1,125 @@ +let wasm; +export function __wbg_set_wasm(val) { + wasm = val; +} + + +let WASM_VECTOR_LEN = 0; + +let cachedUint8ArrayMemory0 = null; + +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +const lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder; + +const cachedTextEncoder = new lTextEncoder('utf-8'); + +const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' + ? function (arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +} + : function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; +}); + +function passStringToWasm0(arg, malloc, realloc) { + + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = encodeString(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +const lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder; + +let cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + cachedTextDecoder.decode(); + numBytesDecoded = len; + } + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return decodeText(ptr, len); +} +/** + * @param {string} code + * @returns {string} + */ +export function parse_nu(code) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.parse_nu(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + +export function __wbindgen_init_externref_table() { + const table = wasm.__wbindgen_export_0; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + ; +}; + diff --git a/cli/wasm/nu/windmill_parser_wasm_bg.wasm b/cli/wasm/nu/windmill_parser_wasm_bg.wasm index 683fd3d380..638bb844f6 100644 Binary files a/cli/wasm/nu/windmill_parser_wasm_bg.wasm and b/cli/wasm/nu/windmill_parser_wasm_bg.wasm differ diff --git a/cli/wasm/regex/windmill_parser_wasm.d.ts b/cli/wasm/regex/windmill_parser_wasm.d.ts index 7ddef9498c..5ad7aef180 100644 --- a/cli/wasm/regex/windmill_parser_wasm.d.ts +++ b/cli/wasm/regex/windmill_parser_wasm.d.ts @@ -1,14 +1,14 @@ /* tslint:disable */ /* eslint-disable */ export function parse_bash(code: string): string; -export function parse_powershell(code: string): string; -export function parse_sql(code: string): string; -export function parse_mysql(code: string): string; -export function parse_oracledb(code: string): string; -export function parse_duckdb(code: string): string; -export function parse_bigquery(code: string): string; export function parse_snowflake(code: string): string; -export function parse_mssql(code: string): string; -export function parse_db_resource(code: string): string | undefined; -export function parse_graphql(code: string): string; export function parse_assets_sql(code: string): string; +export function parse_duckdb(code: string): string; +export function parse_graphql(code: string): string; +export function parse_db_resource(code: string): string | undefined; +export function parse_mysql(code: string): string; +export function parse_sql(code: string): string; +export function parse_oracledb(code: string): string; +export function parse_bigquery(code: string): string; +export function parse_mssql(code: string): string; +export function parse_powershell(code: string): string; diff --git a/cli/wasm/regex/windmill_parser_wasm.js b/cli/wasm/regex/windmill_parser_wasm.js index 05a1c1906b..ce0a45c4c4 100644 --- a/cli/wasm/regex/windmill_parser_wasm.js +++ b/cli/wasm/regex/windmill_parser_wasm.js @@ -11,7 +11,11 @@ function getUint8ArrayMemory0() { return cachedUint8ArrayMemory0; } -const cachedTextEncoder = new TextEncoder(); +const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); + +const encodeString = function (arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +}; function passStringToWasm0(arg, malloc, realloc) { @@ -42,7 +46,7 @@ function passStringToWasm0(arg, malloc, realloc) { } ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); - const ret = cachedTextEncoder.encodeInto(arg, view); + const ret = encodeString(arg, view); offset += ret.written; ptr = realloc(ptr, len, offset, 1) >>> 0; @@ -52,9 +56,9 @@ function passStringToWasm0(arg, malloc, realloc) { return ptr; } -let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); +let cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); -cachedTextDecoder.decode(); +if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; function decodeText(ptr, len) { return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); @@ -87,13 +91,13 @@ export function parse_bash(code) { * @param {string} code * @returns {string} */ -export function parse_powershell(code) { +export function parse_snowflake(code) { let deferred2_0; let deferred2_1; try { const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_powershell(ptr0, len0); + const ret = wasm.parse_snowflake(ptr0, len0); deferred2_0 = ret[0]; deferred2_1 = ret[1]; return getStringFromWasm0(ret[0], ret[1]); @@ -106,51 +110,13 @@ export function parse_powershell(code) { * @param {string} code * @returns {string} */ -export function parse_sql(code) { +export function parse_assets_sql(code) { let deferred2_0; let deferred2_1; try { const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_sql(ptr0, len0); - deferred2_0 = ret[0]; - deferred2_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } -} - -/** - * @param {string} code - * @returns {string} - */ -export function parse_mysql(code) { - let deferred2_0; - let deferred2_1; - try { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_mysql(ptr0, len0); - deferred2_0 = ret[0]; - deferred2_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } -} - -/** - * @param {string} code - * @returns {string} - */ -export function parse_oracledb(code) { - let deferred2_0; - let deferred2_1; - try { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_oracledb(ptr0, len0); + const ret = wasm.parse_assets_sql(ptr0, len0); deferred2_0 = ret[0]; deferred2_1 = ret[1]; return getStringFromWasm0(ret[0], ret[1]); @@ -182,13 +148,48 @@ export function parse_duckdb(code) { * @param {string} code * @returns {string} */ -export function parse_bigquery(code) { +export function parse_graphql(code) { let deferred2_0; let deferred2_1; try { const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_bigquery(ptr0, len0); + const ret = wasm.parse_graphql(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + +/** + * @param {string} code + * @returns {string | undefined} + */ +export function parse_db_resource(code) { + const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.parse_db_resource(ptr0, len0); + let v2; + if (ret[0] !== 0) { + v2 = getStringFromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + } + return v2; +} + +/** + * @param {string} code + * @returns {string} + */ +export function parse_mysql(code) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.parse_mysql(ptr0, len0); deferred2_0 = ret[0]; deferred2_1 = ret[1]; return getStringFromWasm0(ret[0], ret[1]); @@ -201,13 +202,51 @@ export function parse_bigquery(code) { * @param {string} code * @returns {string} */ -export function parse_snowflake(code) { +export function parse_sql(code) { let deferred2_0; let deferred2_1; try { const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_snowflake(ptr0, len0); + const ret = wasm.parse_sql(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + +/** + * @param {string} code + * @returns {string} + */ +export function parse_oracledb(code) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.parse_oracledb(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + +/** + * @param {string} code + * @returns {string} + */ +export function parse_bigquery(code) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.parse_bigquery(ptr0, len0); deferred2_0 = ret[0]; deferred2_1 = ret[1]; return getStringFromWasm0(ret[0], ret[1]); @@ -235,52 +274,17 @@ export function parse_mssql(code) { } } -/** - * @param {string} code - * @returns {string | undefined} - */ -export function parse_db_resource(code) { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_db_resource(ptr0, len0); - let v2; - if (ret[0] !== 0) { - v2 = getStringFromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v2; -} - /** * @param {string} code * @returns {string} */ -export function parse_graphql(code) { +export function parse_powershell(code) { let deferred2_0; let deferred2_1; try { const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_graphql(ptr0, len0); - deferred2_0 = ret[0]; - deferred2_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } -} - -/** - * @param {string} code - * @returns {string} - */ -export function parse_assets_sql(code) { - let deferred2_0; - let deferred2_1; - try { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_assets_sql(ptr0, len0); + const ret = wasm.parse_powershell(ptr0, len0); deferred2_0 = ret[0]; deferred2_1 = ret[1]; return getStringFromWasm0(ret[0], ret[1]); @@ -305,9 +309,23 @@ const imports = { }; -const wasmUrl = new URL('windmill_parser_wasm_bg.wasm', import.meta.url); -const wasm = (await WebAssembly.instantiateStreaming(fetch(wasmUrl), imports)).instance.exports; -export { wasm as __wasm }; +const wasm_url = new URL('windmill_parser_wasm_bg.wasm', import.meta.url); +let wasmCode = ''; +switch (wasm_url.protocol) { + case 'file:': + wasmCode = await Deno.readFile(wasm_url); + break + case 'https:': + case 'http:': + wasmCode = await (await fetch(wasm_url)).arrayBuffer(); + break + default: + throw new Error(`Unsupported protocol: ${wasm_url.protocol}`); +} + +const wasmInstance = (await WebAssembly.instantiate(wasmCode, imports)).instance; +const wasm = wasmInstance.exports; +export const __wasm = wasm; wasm.__wbindgen_start(); diff --git a/cli/wasm/regex/windmill_parser_wasm_bg.wasm b/cli/wasm/regex/windmill_parser_wasm_bg.wasm index 56788106a8..12a3a0f992 100644 Binary files a/cli/wasm/regex/windmill_parser_wasm_bg.wasm and b/cli/wasm/regex/windmill_parser_wasm_bg.wasm differ diff --git a/cli/wasm/regex/windmill_parser_wasm_bg.wasm.d.ts b/cli/wasm/regex/windmill_parser_wasm_bg.wasm.d.ts index 2219bb4518..f5d3f99bf1 100644 --- a/cli/wasm/regex/windmill_parser_wasm_bg.wasm.d.ts +++ b/cli/wasm/regex/windmill_parser_wasm_bg.wasm.d.ts @@ -1,18 +1,18 @@ /* tslint:disable */ /* eslint-disable */ export const memory: WebAssembly.Memory; +export const parse_assets_sql: (a: number, b: number) => [number, number]; export const parse_bash: (a: number, b: number) => [number, number]; -export const parse_powershell: (a: number, b: number) => [number, number]; -export const parse_sql: (a: number, b: number) => [number, number]; +export const parse_bigquery: (a: number, b: number) => [number, number]; +export const parse_db_resource: (a: number, b: number) => [number, number]; +export const parse_duckdb: (a: number, b: number) => [number, number]; +export const parse_graphql: (a: number, b: number) => [number, number]; +export const parse_mssql: (a: number, b: number) => [number, number]; export const parse_mysql: (a: number, b: number) => [number, number]; export const parse_oracledb: (a: number, b: number) => [number, number]; -export const parse_duckdb: (a: number, b: number) => [number, number]; -export const parse_bigquery: (a: number, b: number) => [number, number]; +export const parse_powershell: (a: number, b: number) => [number, number]; export const parse_snowflake: (a: number, b: number) => [number, number]; -export const parse_mssql: (a: number, b: number) => [number, number]; -export const parse_db_resource: (a: number, b: number) => [number, number]; -export const parse_graphql: (a: number, b: number) => [number, number]; -export const parse_assets_sql: (a: number, b: number) => [number, number]; +export const parse_sql: (a: number, b: number) => [number, number]; export const __wbindgen_export_0: WebAssembly.Table; export const __wbindgen_malloc: (a: number, b: number) => number; export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; diff --git a/cli/wasm/ts/windmill_parser_wasm.d.ts b/cli/wasm/ts/windmill_parser_wasm.d.ts index 07c9bc242a..e21c8ebabf 100644 --- a/cli/wasm/ts/windmill_parser_wasm.d.ts +++ b/cli/wasm/ts/windmill_parser_wasm.d.ts @@ -2,5 +2,5 @@ /* eslint-disable */ export function parse_deno(code: string, main_override?: string | null): string; export function parse_outputs(code: string): string; -export function parse_ts_imports(code: string): string; export function parse_assets_ts(code: string): string; +export function parse_ts_imports(code: string): string; diff --git a/cli/wasm/ts/windmill_parser_wasm.js b/cli/wasm/ts/windmill_parser_wasm.js index 31e408fd89..20b7073aac 100644 --- a/cli/wasm/ts/windmill_parser_wasm.js +++ b/cli/wasm/ts/windmill_parser_wasm.js @@ -9,9 +9,9 @@ function getUint8ArrayMemory0() { return cachedUint8ArrayMemory0; } -let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); +let cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); -cachedTextDecoder.decode(); +if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; function decodeText(ptr, len) { return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); @@ -122,7 +122,11 @@ function debugString(val) { let WASM_VECTOR_LEN = 0; -const cachedTextEncoder = new TextEncoder(); +const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); + +const encodeString = function (arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +}; function passStringToWasm0(arg, malloc, realloc) { @@ -153,7 +157,7 @@ function passStringToWasm0(arg, malloc, realloc) { } ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); - const ret = cachedTextEncoder.encodeInto(arg, view); + const ret = encodeString(arg, view); offset += ret.written; ptr = realloc(ptr, len, offset, 1) >>> 0; @@ -203,25 +207,6 @@ export function parse_outputs(code) { } } -/** - * @param {string} code - * @returns {string} - */ -export function parse_ts_imports(code) { - let deferred2_0; - let deferred2_1; - try { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.parse_ts_imports(ptr0, len0); - deferred2_0 = ret[0]; - deferred2_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } -} - /** * @param {string} code * @returns {string} @@ -241,37 +226,56 @@ export function parse_assets_ts(code) { } } +/** + * @param {string} code + * @returns {string} + */ +export function parse_ts_imports(code) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.parse_ts_imports(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + const imports = { __wbindgen_placeholder__: { - __wbg_Error_e17e777aac105295: function(arg0, arg1) { + __wbg_Error_1f3748b298f99708: function(arg0, arg1) { const ret = Error(getStringFromWasm0(arg0, arg1)); return ret; }, - __wbg_call_13410aac570ffff7: function() { return handleError(function (arg0, arg1) { + __wbg_call_2f8d426a20a307fe: function() { return handleError(function (arg0, arg1) { const ret = arg0.call(arg1); return ret; }, arguments) }, - __wbg_done_75ed0ee6dd243d9d: function(arg0) { + __wbg_done_4a7743b6f942c9f3: function(arg0) { const ret = arg0.done; return ret; }, - __wbg_entries_2be2f15bd5554996: function(arg0) { + __wbg_entries_17f7acbc2d691c0d: function(arg0) { const ret = Object.entries(arg0); return ret; }, - __wbg_eval_5088487c29e8df77: function(arg0, arg1) { + __wbg_eval_12755dabbdfa08b1: function(arg0, arg1) { const ret = eval(getStringFromWasm0(arg0, arg1)); return ret; }, - __wbg_get_0da715ceaecea5c8: function(arg0, arg1) { - const ret = arg0[arg1 >>> 0]; - return ret; - }, - __wbg_get_458e874b43b18b25: function() { return handleError(function (arg0, arg1) { + __wbg_get_27b4bcbec57323ca: function() { return handleError(function (arg0, arg1) { const ret = Reflect.get(arg0, arg1); return ret; }, arguments) }, - __wbg_instanceof_ArrayBuffer_67f3012529f6a2dd: function(arg0) { + __wbg_get_59c6316d15f9f1d0: function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }, + __wbg_instanceof_ArrayBuffer_59339a3a6f0c10ea: function(arg0) { let result; try { result = arg0 instanceof ArrayBuffer; @@ -281,7 +285,7 @@ const imports = { const ret = result; return ret; }, - __wbg_instanceof_Map_ebb01a5b6b5ffd0b: function(arg0) { + __wbg_instanceof_Map_dd89a82d76d1b25f: function(arg0) { let result; try { result = arg0 instanceof Map; @@ -291,7 +295,7 @@ const imports = { const ret = result; return ret; }, - __wbg_instanceof_Uint8Array_9a8378d955933db7: function(arg0) { + __wbg_instanceof_Uint8Array_91f3c5adee7e6672: function(arg0) { let result; try { result = arg0 instanceof Uint8Array; @@ -301,95 +305,95 @@ const imports = { const ret = result; return ret; }, - __wbg_isArray_030cce220591fb41: function(arg0) { + __wbg_isArray_bc2498eba6fcb71f: function(arg0) { const ret = Array.isArray(arg0); return ret; }, - __wbg_isSafeInteger_1c0d1af5542e102a: function(arg0) { + __wbg_isSafeInteger_6091d6e3ee1b65fd: function(arg0) { const ret = Number.isSafeInteger(arg0); return ret; }, - __wbg_iterator_f370b34483c71a1c: function() { + __wbg_iterator_96378c3c9a17347c: function() { const ret = Symbol.iterator; return ret; }, - __wbg_length_186546c51cd61acd: function(arg0) { + __wbg_length_246fa1f85a0dea5b: function(arg0) { const ret = arg0.length; return ret; }, - __wbg_length_6bb7e81f9d7713e4: function(arg0) { + __wbg_length_904c0910ed998bf3: function(arg0) { const ret = arg0.length; return ret; }, - __wbg_new_638ebfaedbf32a5e: function(arg0) { + __wbg_new_9190433fb67ed635: function(arg0) { const ret = new Uint8Array(arg0); return ret; }, - __wbg_next_5b3530e612fde77d: function(arg0) { - const ret = arg0.next; - return ret; - }, - __wbg_next_692e82279131b03c: function() { return handleError(function (arg0) { + __wbg_next_2e6b37020ac5fe58: function() { return handleError(function (arg0) { const ret = arg0.next(); return ret; }, arguments) }, - __wbg_prototypesetcall_3d4a26c1ed734349: function(arg0, arg1, arg2) { + __wbg_next_3de8f2669431a3ff: function(arg0) { + const ret = arg0.next; + return ret; + }, + __wbg_prototypesetcall_c5f74efd31aea86b: function(arg0, arg1, arg2) { Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); }, - __wbg_value_dd9372230531eade: function(arg0) { + __wbg_value_09d0b4eaab48b91d: function(arg0) { const ret = arg0.value; return ret; }, - __wbg_wbindgenbigintgetasi64_ac743ece6ab9bba1: function(arg0, arg1) { + __wbg_wbindgenbigintgetasi64_7637cb1a7fb9a81e: function(arg0, arg1) { const v = arg1; const ret = typeof(v) === 'bigint' ? v : undefined; getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); }, - __wbg_wbindgenbooleanget_3fe6f642c7d97746: function(arg0) { + __wbg_wbindgenbooleanget_59f830b1a70d2530: function(arg0) { const v = arg0; const ret = typeof(v) === 'boolean' ? v : undefined; return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0; }, - __wbg_wbindgendebugstring_99ef257a3ddda34d: function(arg0, arg1) { + __wbg_wbindgendebugstring_bb652b1bc2061b6d: function(arg0, arg1) { const ret = debugString(arg1); const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }, - __wbg_wbindgenin_d7a1ee10933d2d55: function(arg0, arg1) { + __wbg_wbindgenin_192b210aa1c401e9: function(arg0, arg1) { const ret = arg0 in arg1; return ret; }, - __wbg_wbindgenisbigint_ecb90cc08a5a9154: function(arg0) { + __wbg_wbindgenisbigint_7d76a1ca6454e439: function(arg0) { const ret = typeof(arg0) === 'bigint'; return ret; }, - __wbg_wbindgenisfunction_8cee7dce3725ae74: function(arg0) { + __wbg_wbindgenisfunction_ea72b9d66a0e1705: function(arg0) { const ret = typeof(arg0) === 'function'; return ret; }, - __wbg_wbindgenisobject_307a53c6bd97fbf8: function(arg0) { + __wbg_wbindgenisobject_dfe064a121d87553: function(arg0) { const val = arg0; const ret = typeof(val) === 'object' && val !== null; return ret; }, - __wbg_wbindgenjsvaleq_e6f2ad59ccae1b58: function(arg0, arg1) { + __wbg_wbindgenjsvaleq_f27272c0a890df7f: function(arg0, arg1) { const ret = arg0 === arg1; return ret; }, - __wbg_wbindgenjsvallooseeq_9bec8c9be826bed1: function(arg0, arg1) { + __wbg_wbindgenjsvallooseeq_9dd7bb4b95ac195c: function(arg0, arg1) { const ret = arg0 == arg1; return ret; }, - __wbg_wbindgennumberget_f74b4c7525ac05cb: function(arg0, arg1) { + __wbg_wbindgennumberget_d855f947247a3fbc: function(arg0, arg1) { const obj = arg1; const ret = typeof(obj) === 'number' ? obj : undefined; getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); }, - __wbg_wbindgenstringget_0f16a6ddddef376f: function(arg0, arg1) { + __wbg_wbindgenstringget_43fe05afe34b0cb1: function(arg0, arg1) { const obj = arg1; const ret = typeof(obj) === 'string' ? obj : undefined; var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); @@ -397,7 +401,7 @@ const imports = { getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }, - __wbg_wbindgenthrow_451ec1a8469d7eb6: function(arg0, arg1) { + __wbg_wbindgenthrow_4c11a24fca429ccf: function(arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); }, __wbindgen_cast_4625c577ab2ec9ee: function(arg0) { @@ -424,9 +428,23 @@ const imports = { }; -const wasmUrl = new URL('windmill_parser_wasm_bg.wasm', import.meta.url); -const wasm = (await WebAssembly.instantiateStreaming(fetch(wasmUrl), imports)).instance.exports; -export { wasm as __wasm }; +const wasm_url = new URL('windmill_parser_wasm_bg.wasm', import.meta.url); +let wasmCode = ''; +switch (wasm_url.protocol) { + case 'file:': + wasmCode = await Deno.readFile(wasm_url); + break + case 'https:': + case 'http:': + wasmCode = await (await fetch(wasm_url)).arrayBuffer(); + break + default: + throw new Error(`Unsupported protocol: ${wasm_url.protocol}`); +} + +const wasmInstance = (await WebAssembly.instantiate(wasmCode, imports)).instance; +const wasm = wasmInstance.exports; +export const __wasm = wasm; wasm.__wbindgen_start(); diff --git a/cli/wasm/ts/windmill_parser_wasm_bg.wasm b/cli/wasm/ts/windmill_parser_wasm_bg.wasm index 23a04dbd5f..e4b9b2e87d 100644 Binary files a/cli/wasm/ts/windmill_parser_wasm_bg.wasm and b/cli/wasm/ts/windmill_parser_wasm_bg.wasm differ diff --git a/cli/wasm/ts/windmill_parser_wasm_bg.wasm.d.ts b/cli/wasm/ts/windmill_parser_wasm_bg.wasm.d.ts index 893670467d..9ffd962d51 100644 --- a/cli/wasm/ts/windmill_parser_wasm_bg.wasm.d.ts +++ b/cli/wasm/ts/windmill_parser_wasm_bg.wasm.d.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ export const memory: WebAssembly.Memory; +export const parse_assets_ts: (a: number, b: number) => [number, number]; export const parse_deno: (a: number, b: number, c: number, d: number) => [number, number]; export const parse_outputs: (a: number, b: number) => [number, number]; export const parse_ts_imports: (a: number, b: number) => [number, number]; -export const parse_assets_ts: (a: number, b: number) => [number, number]; export const __wbindgen_exn_store: (a: number) => void; export const __externref_table_alloc: () => number; export const __wbindgen_export_2: WebAssembly.Table;