From d3c0b866f226f082c4125733b2e0b34b32bd067e Mon Sep 17 00:00:00 2001 From: Kieran Date: Fri, 22 Sep 2023 20:28:56 +0100 Subject: [PATCH] Rename system-query to system-wasm --- packages/app/package.json | 2 +- packages/app/src/benchmarks.ts | 4 +- packages/app/src/index.tsx | 4 +- packages/system-query/README.md | 1 - packages/system-query/package.json | 17 - packages/system-query/pkg/README.md | 1 - packages/system-query/pkg/package.json | 14 - packages/system-query/pkg/system_query.d.ts | 65 -- packages/system-query/pkg/system_query.js | 586 ------------------ .../system-query/pkg/system_query_bg.wasm | Bin 126803 -> 0 bytes .../pkg/system_query_bg.wasm.d.ts | 12 - .../{system-query => system-wasm}/.gitignore | 0 .../{system-query => system-wasm}/Cargo.lock | 2 +- .../{system-query => system-wasm}/Cargo.toml | 2 +- packages/system-wasm/README.md | 1 + .../benches/basic.rs | 0 packages/system-wasm/package.json | 17 + .../{system-query => system-wasm}/src/diff.rs | 0 .../src/filter.rs | 0 .../{system-query => system-wasm}/src/lib.rs | 0 .../src/merge.rs | 0 .../src/utils.rs | 0 .../system-query.iml | 0 yarn.lock | 14 +- 24 files changed, 32 insertions(+), 710 deletions(-) delete mode 100644 packages/system-query/README.md delete mode 100644 packages/system-query/package.json delete mode 100644 packages/system-query/pkg/README.md delete mode 100644 packages/system-query/pkg/package.json delete mode 100644 packages/system-query/pkg/system_query.d.ts delete mode 100644 packages/system-query/pkg/system_query.js delete mode 100644 packages/system-query/pkg/system_query_bg.wasm delete mode 100644 packages/system-query/pkg/system_query_bg.wasm.d.ts rename packages/{system-query => system-wasm}/.gitignore (100%) rename packages/{system-query => system-wasm}/Cargo.lock (99%) rename packages/{system-query => system-wasm}/Cargo.toml (95%) create mode 100644 packages/system-wasm/README.md rename packages/{system-query => system-wasm}/benches/basic.rs (100%) create mode 100644 packages/system-wasm/package.json rename packages/{system-query => system-wasm}/src/diff.rs (100%) rename packages/{system-query => system-wasm}/src/filter.rs (100%) rename packages/{system-query => system-wasm}/src/lib.rs (100%) rename packages/{system-query => system-wasm}/src/merge.rs (100%) rename packages/{system-query => system-wasm}/src/utils.rs (100%) rename packages/{system-query => system-wasm}/system-query.iml (100%) diff --git a/packages/app/package.json b/packages/app/package.json index ca86e33a0..87d953c8f 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -11,8 +11,8 @@ "@scure/bip39": "^1.1.1", "@snort/shared": "workspace:*", "@snort/system": "workspace:*", - "@snort/system-query": "workspace:*", "@snort/system-react": "workspace:*", + "@snort/system-wasm": "workspace:*", "@szhsin/react-menu": "^3.3.1", "@types/use-sync-external-store": "^0.0.4", "@void-cat/api": "^1.0.4", diff --git a/packages/app/src/benchmarks.ts b/packages/app/src/benchmarks.ts index 1b6acb80f..7754d8a8b 100644 --- a/packages/app/src/benchmarks.ts +++ b/packages/app/src/benchmarks.ts @@ -1,7 +1,7 @@ import { bytesToHex } from "@noble/hashes/utils"; import { DefaultQueryOptimizer, FlatReqFilter, QueryOptimizer, ReqFilter } from "@snort/system"; -import { compress, expand_filter, flat_merge, get_diff, default as wasmInit } from "@snort/system-query"; -import WasmPath from "@snort/system-query/pkg/system_query_bg.wasm"; +import { compress, expand_filter, flat_merge, get_diff, default as wasmInit } from "@snort/system-wasm"; +import WasmPath from "@snort/system-wasm/pkg/system_wasm_bg.wasm"; import { Bench } from "tinybench"; const WasmQueryOptimizer = { diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx index bb5c6c5a4..c47ca3a7f 100644 --- a/packages/app/src/index.tsx +++ b/packages/app/src/index.tsx @@ -2,8 +2,8 @@ import "./index.css"; import "@szhsin/react-menu/dist/index.css"; import "./fonts/inter.css"; -import { compress, expand_filter, flat_merge, get_diff, default as wasmInit } from "@snort/system-query"; -import WasmPath from "@snort/system-query/pkg/system_query_bg.wasm"; +import { compress, expand_filter, flat_merge, get_diff, default as wasmInit } from "@snort/system-wasm"; +import WasmPath from "@snort/system-wasm/pkg/system_wasm_bg.wasm"; import { StrictMode } from "react"; import * as ReactDOM from "react-dom/client"; diff --git a/packages/system-query/README.md b/packages/system-query/README.md deleted file mode 100644 index f38914633..000000000 --- a/packages/system-query/README.md +++ /dev/null @@ -1 +0,0 @@ -# system-query diff --git a/packages/system-query/package.json b/packages/system-query/package.json deleted file mode 100644 index 843796255..000000000 --- a/packages/system-query/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@snort/system-query", - "version": "1.0.0", - "packageManager": "yarn@3.6.3", - "author": "Kieran", - "license": "MIT", - "scripts": { - "build": "wasm-pack build -t web -s snort" - }, - "files": [ - "pkg/system_query_bg.wasm", - "pkg/system_query.js", - "pkg/system_query.d.ts" - ], - "module": "pkg/system_query.js", - "types": "pkg/system_query.d.ts" -} diff --git a/packages/system-query/pkg/README.md b/packages/system-query/pkg/README.md deleted file mode 100644 index f38914633..000000000 --- a/packages/system-query/pkg/README.md +++ /dev/null @@ -1 +0,0 @@ -# system-query diff --git a/packages/system-query/pkg/package.json b/packages/system-query/pkg/package.json deleted file mode 100644 index 74743550f..000000000 --- a/packages/system-query/pkg/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "@snort/system-query", - "version": "0.1.0", - "files": [ - "system_query_bg.wasm", - "system_query.js", - "system_query.d.ts" - ], - "module": "system_query.js", - "types": "system_query.d.ts", - "sideEffects": [ - "./snippets/*" - ] -} diff --git a/packages/system-query/pkg/system_query.d.ts b/packages/system-query/pkg/system_query.d.ts deleted file mode 100644 index b1781e0da..000000000 --- a/packages/system-query/pkg/system_query.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * @param {any} prev - * @param {any} next - * @returns {any} - */ -export function diff_filters(prev: any, next: any): any; -/** - * @param {any} val - * @returns {any} - */ -export function expand_filter(val: any): any; -/** - * @param {any} prev - * @param {any} next - * @returns {any} - */ -export function get_diff(prev: any, next: any): any; -/** - * @param {any} val - * @returns {any} - */ -export function flat_merge(val: any): any; -/** - * @param {any} val - * @returns {any} - */ -export function compress(val: any): any; - -export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; - -export interface InitOutput { - readonly memory: WebAssembly.Memory; - readonly diff_filters: (a: number, b: number, c: number) => void; - readonly expand_filter: (a: number, b: number) => void; - readonly get_diff: (a: number, b: number, c: number) => void; - readonly flat_merge: (a: number, b: number) => void; - readonly compress: (a: number, b: number) => void; - readonly __wbindgen_malloc: (a: number, b: number) => number; - readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; - readonly __wbindgen_add_to_stack_pointer: (a: number) => number; - readonly __wbindgen_exn_store: (a: number) => void; -} - -export type SyncInitInput = BufferSource | WebAssembly.Module; -/** - * Instantiates the given `module`, which can either be bytes or - * a precompiled `WebAssembly.Module`. - * - * @param {SyncInitInput} module - * - * @returns {InitOutput} - */ -export function initSync(module: SyncInitInput): InitOutput; - -/** - * If `module_or_path` is {RequestInfo} or {URL}, makes a request and - * for everything else, calls `WebAssembly.instantiate` directly. - * - * @param {InitInput | Promise} module_or_path - * - * @returns {Promise} - */ -export default function __wbg_init(module_or_path?: InitInput | Promise): Promise; diff --git a/packages/system-query/pkg/system_query.js b/packages/system-query/pkg/system_query.js deleted file mode 100644 index 67836cbdf..000000000 --- a/packages/system-query/pkg/system_query.js +++ /dev/null @@ -1,586 +0,0 @@ -let wasm; - -const heap = new Array(128).fill(undefined); - -heap.push(undefined, null, true, false); - -function getObject(idx) { - return heap[idx]; -} - -let heap_next = heap.length; - -function dropObject(idx) { - if (idx < 132) return; - heap[idx] = heap_next; - heap_next = idx; -} - -function takeObject(idx) { - const ret = getObject(idx); - dropObject(idx); - return ret; -} - -let WASM_VECTOR_LEN = 0; - -let cachedUint8Memory0 = null; - -function getUint8Memory0() { - if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { - cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachedUint8Memory0; -} - -const cachedTextEncoder = - typeof TextEncoder !== "undefined" - ? new TextEncoder("utf-8") - : { - encode: () => { - throw Error("TextEncoder not available"); - }, - }; - -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; - getUint8Memory0() - .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 = getUint8Memory0(); - - 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 = getUint8Memory0().subarray(ptr + offset, ptr + len); - const ret = encodeString(arg, view); - - offset += ret.written; - } - - WASM_VECTOR_LEN = offset; - return ptr; -} - -function isLikeNone(x) { - return x === undefined || x === null; -} - -let cachedInt32Memory0 = null; - -function getInt32Memory0() { - if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { - cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); - } - return cachedInt32Memory0; -} - -const 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 getStringFromWasm0(ptr, len) { - ptr = ptr >>> 0; - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - -let cachedFloat64Memory0 = null; - -function getFloat64Memory0() { - if (cachedFloat64Memory0 === null || cachedFloat64Memory0.byteLength === 0) { - cachedFloat64Memory0 = new Float64Array(wasm.memory.buffer); - } - return cachedFloat64Memory0; -} - -function debugString(val) { - // primitive types - const type = typeof val; - if (type == "number" || type == "boolean" || val == null) { - return `${val}`; - } - if (type == "string") { - return `"${val}"`; - } - if (type == "symbol") { - const description = val.description; - if (description == null) { - return "Symbol"; - } else { - return `Symbol(${description})`; - } - } - if (type == "function") { - const name = val.name; - if (typeof name == "string" && name.length > 0) { - return `Function(${name})`; - } else { - return "Function"; - } - } - // objects - if (Array.isArray(val)) { - const length = val.length; - let debug = "["; - if (length > 0) { - debug += debugString(val[0]); - } - for (let i = 1; i < length; i++) { - debug += ", " + debugString(val[i]); - } - debug += "]"; - return debug; - } - // Test for built-in - const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); - let className; - if (builtInMatches.length > 1) { - className = builtInMatches[1]; - } else { - // Failed to match the standard '[object ClassName]' - return toString.call(val); - } - if (className == "Object") { - // we're a user defined class or Object - // JSON.stringify avoids problems with cycles, and is generally much - // easier than looping through ownProperties of `val`. - try { - return "Object(" + JSON.stringify(val) + ")"; - } catch (_) { - return "Object"; - } - } - // errors - if (val instanceof Error) { - return `${val.name}: ${val.message}\n${val.stack}`; - } - // TODO we could test for more things here, like `Set`s and `Map`s. - return className; -} -/** - * @param {any} prev - * @param {any} next - * @returns {any} - */ -export function diff_filters(prev, next) { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.diff_filters(retptr, addHeapObject(prev), addHeapObject(next)); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - var r2 = getInt32Memory0()[retptr / 4 + 2]; - if (r2) { - throw takeObject(r1); - } - return takeObject(r0); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } -} - -/** - * @param {any} val - * @returns {any} - */ -export function expand_filter(val) { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.expand_filter(retptr, addHeapObject(val)); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - var r2 = getInt32Memory0()[retptr / 4 + 2]; - if (r2) { - throw takeObject(r1); - } - return takeObject(r0); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } -} - -/** - * @param {any} prev - * @param {any} next - * @returns {any} - */ -export function get_diff(prev, next) { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.get_diff(retptr, addHeapObject(prev), addHeapObject(next)); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - var r2 = getInt32Memory0()[retptr / 4 + 2]; - if (r2) { - throw takeObject(r1); - } - return takeObject(r0); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } -} - -/** - * @param {any} val - * @returns {any} - */ -export function flat_merge(val) { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.flat_merge(retptr, addHeapObject(val)); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - var r2 = getInt32Memory0()[retptr / 4 + 2]; - if (r2) { - throw takeObject(r1); - } - return takeObject(r0); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } -} - -/** - * @param {any} val - * @returns {any} - */ -export function compress(val) { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.compress(retptr, addHeapObject(val)); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - var r2 = getInt32Memory0()[retptr / 4 + 2]; - if (r2) { - throw takeObject(r1); - } - return takeObject(r0); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } -} - -function handleError(f, args) { - try { - return f.apply(this, args); - } catch (e) { - wasm.__wbindgen_exn_store(addHeapObject(e)); - } -} - -async function __wbg_load(module, imports) { - if (typeof Response === "function" && module instanceof Response) { - if (typeof WebAssembly.instantiateStreaming === "function") { - try { - return await WebAssembly.instantiateStreaming(module, imports); - } catch (e) { - if (module.headers.get("Content-Type") != "application/wasm") { - console.warn( - "`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", - e, - ); - } else { - throw e; - } - } - } - - const bytes = await module.arrayBuffer(); - return await WebAssembly.instantiate(bytes, imports); - } else { - const instance = await WebAssembly.instantiate(module, imports); - - if (instance instanceof WebAssembly.Instance) { - return { instance, module }; - } else { - return instance; - } - } -} - -function __wbg_get_imports() { - const imports = {}; - imports.wbg = {}; - imports.wbg.__wbindgen_object_drop_ref = function (arg0) { - takeObject(arg0); - }; - imports.wbg.__wbindgen_string_get = function (arg0, arg1) { - const obj = getObject(arg1); - const ret = typeof obj === "string" ? obj : undefined; - var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - getInt32Memory0()[arg0 / 4 + 1] = len1; - getInt32Memory0()[arg0 / 4 + 0] = ptr1; - }; - imports.wbg.__wbindgen_is_object = function (arg0) { - const val = getObject(arg0); - const ret = typeof val === "object" && val !== null; - return ret; - }; - imports.wbg.__wbindgen_is_undefined = function (arg0) { - const ret = getObject(arg0) === undefined; - return ret; - }; - imports.wbg.__wbindgen_in = function (arg0, arg1) { - const ret = getObject(arg0) in getObject(arg1); - return ret; - }; - imports.wbg.__wbindgen_error_new = function (arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_object_clone_ref = function (arg0) { - const ret = getObject(arg0); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_jsval_loose_eq = function (arg0, arg1) { - const ret = getObject(arg0) == getObject(arg1); - return ret; - }; - imports.wbg.__wbindgen_boolean_get = function (arg0) { - const v = getObject(arg0); - const ret = typeof v === "boolean" ? (v ? 1 : 0) : 2; - return ret; - }; - imports.wbg.__wbindgen_number_get = function (arg0, arg1) { - const obj = getObject(arg1); - const ret = typeof obj === "number" ? obj : undefined; - getFloat64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? 0 : ret; - getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); - }; - imports.wbg.__wbindgen_number_new = function (arg0) { - const ret = arg0; - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_string_new = function (arg0, arg1) { - const ret = getStringFromWasm0(arg0, arg1); - return addHeapObject(ret); - }; - imports.wbg.__wbg_getwithrefkey_5e6d9547403deab8 = function (arg0, arg1) { - const ret = getObject(arg0)[getObject(arg1)]; - return addHeapObject(ret); - }; - imports.wbg.__wbg_set_841ac57cff3d672b = function (arg0, arg1, arg2) { - getObject(arg0)[takeObject(arg1)] = takeObject(arg2); - }; - imports.wbg.__wbg_get_44be0491f933a435 = function (arg0, arg1) { - const ret = getObject(arg0)[arg1 >>> 0]; - return addHeapObject(ret); - }; - imports.wbg.__wbg_length_fff51ee6522a1a18 = function (arg0) { - const ret = getObject(arg0).length; - return ret; - }; - imports.wbg.__wbg_new_898a68150f225f2e = function () { - const ret = new Array(); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_is_function = function (arg0) { - const ret = typeof getObject(arg0) === "function"; - return ret; - }; - imports.wbg.__wbg_next_526fc47e980da008 = function (arg0) { - const ret = getObject(arg0).next; - return addHeapObject(ret); - }; - imports.wbg.__wbg_next_ddb3312ca1c4e32a = function () { - return handleError(function (arg0) { - const ret = getObject(arg0).next(); - return addHeapObject(ret); - }, arguments); - }; - imports.wbg.__wbg_done_5c1f01fb660d73b5 = function (arg0) { - const ret = getObject(arg0).done; - return ret; - }; - imports.wbg.__wbg_value_1695675138684bd5 = function (arg0) { - const ret = getObject(arg0).value; - return addHeapObject(ret); - }; - imports.wbg.__wbg_iterator_97f0c81209c6c35a = function () { - const ret = Symbol.iterator; - return addHeapObject(ret); - }; - imports.wbg.__wbg_get_97b561fb56f034b5 = function () { - return handleError(function (arg0, arg1) { - const ret = Reflect.get(getObject(arg0), getObject(arg1)); - return addHeapObject(ret); - }, arguments); - }; - imports.wbg.__wbg_call_cb65541d95d71282 = function () { - return handleError(function (arg0, arg1) { - const ret = getObject(arg0).call(getObject(arg1)); - return addHeapObject(ret); - }, arguments); - }; - imports.wbg.__wbg_new_b51585de1b234aff = function () { - const ret = new Object(); - return addHeapObject(ret); - }; - imports.wbg.__wbg_set_502d29070ea18557 = function (arg0, arg1, arg2) { - getObject(arg0)[arg1 >>> 0] = takeObject(arg2); - }; - imports.wbg.__wbg_isArray_4c24b343cb13cfb1 = function (arg0) { - const ret = Array.isArray(getObject(arg0)); - return ret; - }; - imports.wbg.__wbg_instanceof_ArrayBuffer_39ac22089b74fddb = function (arg0) { - let result; - try { - result = getObject(arg0) instanceof ArrayBuffer; - } catch { - result = false; - } - const ret = result; - return ret; - }; - imports.wbg.__wbg_isSafeInteger_bb8e18dd21c97288 = function (arg0) { - const ret = Number.isSafeInteger(getObject(arg0)); - return ret; - }; - imports.wbg.__wbg_buffer_085ec1f694018c4f = function (arg0) { - const ret = getObject(arg0).buffer; - return addHeapObject(ret); - }; - imports.wbg.__wbg_new_8125e318e6245eed = function (arg0) { - const ret = new Uint8Array(getObject(arg0)); - return addHeapObject(ret); - }; - imports.wbg.__wbg_set_5cf90238115182c3 = function (arg0, arg1, arg2) { - getObject(arg0).set(getObject(arg1), arg2 >>> 0); - }; - imports.wbg.__wbg_length_72e2208bbc0efc61 = function (arg0) { - const ret = getObject(arg0).length; - return ret; - }; - imports.wbg.__wbg_instanceof_Uint8Array_d8d9cb2b8e8ac1d4 = function (arg0) { - let result; - try { - result = getObject(arg0) instanceof Uint8Array; - } catch { - result = false; - } - const ret = result; - return ret; - }; - imports.wbg.__wbindgen_debug_string = function (arg0, arg1) { - const ret = debugString(getObject(arg1)); - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getInt32Memory0()[arg0 / 4 + 1] = len1; - getInt32Memory0()[arg0 / 4 + 0] = ptr1; - }; - imports.wbg.__wbindgen_throw = function (arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); - }; - imports.wbg.__wbindgen_memory = function () { - const ret = wasm.memory; - return addHeapObject(ret); - }; - - return imports; -} - -function __wbg_init_memory(imports, maybe_memory) {} - -function __wbg_finalize_init(instance, module) { - wasm = instance.exports; - __wbg_init.__wbindgen_wasm_module = module; - cachedFloat64Memory0 = null; - cachedInt32Memory0 = null; - cachedUint8Memory0 = null; - - return wasm; -} - -function initSync(module) { - if (wasm !== undefined) return wasm; - - const imports = __wbg_get_imports(); - - __wbg_init_memory(imports); - - if (!(module instanceof WebAssembly.Module)) { - module = new WebAssembly.Module(module); - } - - const instance = new WebAssembly.Instance(module, imports); - - return __wbg_finalize_init(instance, module); -} - -async function __wbg_init(input) { - if (wasm !== undefined) return wasm; - - if (typeof input === "undefined") { - input = new URL("system_query_bg.wasm", import.meta.url); - } - const imports = __wbg_get_imports(); - - if ( - typeof input === "string" || - (typeof Request === "function" && input instanceof Request) || - (typeof URL === "function" && input instanceof URL) - ) { - input = fetch(input); - } - - __wbg_init_memory(imports); - - const { instance, module } = await __wbg_load(await input, imports); - - return __wbg_finalize_init(instance, module); -} - -export { initSync }; -export default __wbg_init; diff --git a/packages/system-query/pkg/system_query_bg.wasm b/packages/system-query/pkg/system_query_bg.wasm deleted file mode 100644 index 15d2cdbfb5c31cdf70918f1c6bd244e8aeb24b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126803 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 E0EtGU5dZ)H diff --git a/packages/system-query/pkg/system_query_bg.wasm.d.ts b/packages/system-query/pkg/system_query_bg.wasm.d.ts deleted file mode 100644 index 3071e5fd3..000000000 --- a/packages/system-query/pkg/system_query_bg.wasm.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -export const memory: WebAssembly.Memory; -export function diff_filters(a: number, b: number, c: number): void; -export function expand_filter(a: number, b: number): void; -export function get_diff(a: number, b: number, c: number): void; -export function flat_merge(a: number, b: number): void; -export function compress(a: number, b: number): void; -export function __wbindgen_malloc(a: number, b: number): number; -export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number; -export function __wbindgen_add_to_stack_pointer(a: number): number; -export function __wbindgen_exn_store(a: number): void; diff --git a/packages/system-query/.gitignore b/packages/system-wasm/.gitignore similarity index 100% rename from packages/system-query/.gitignore rename to packages/system-wasm/.gitignore diff --git a/packages/system-query/Cargo.lock b/packages/system-wasm/Cargo.lock similarity index 99% rename from packages/system-query/Cargo.lock rename to packages/system-wasm/Cargo.lock index 067a7bddf..ce0495052 100644 --- a/packages/system-query/Cargo.lock +++ b/packages/system-wasm/Cargo.lock @@ -588,7 +588,7 @@ dependencies = [ ] [[package]] -name = "system-query" +name = "system-wasm" version = "0.1.0" dependencies = [ "criterion", diff --git a/packages/system-query/Cargo.toml b/packages/system-wasm/Cargo.toml similarity index 95% rename from packages/system-query/Cargo.toml rename to packages/system-wasm/Cargo.toml index eb5f616dc..81a968a6f 100644 --- a/packages/system-query/Cargo.toml +++ b/packages/system-wasm/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "system-query" +name = "system-wasm" version = "0.1.0" edition = "2021" diff --git a/packages/system-wasm/README.md b/packages/system-wasm/README.md new file mode 100644 index 000000000..35c324952 --- /dev/null +++ b/packages/system-wasm/README.md @@ -0,0 +1 @@ +# system-wasm diff --git a/packages/system-query/benches/basic.rs b/packages/system-wasm/benches/basic.rs similarity index 100% rename from packages/system-query/benches/basic.rs rename to packages/system-wasm/benches/basic.rs diff --git a/packages/system-wasm/package.json b/packages/system-wasm/package.json new file mode 100644 index 000000000..be57befae --- /dev/null +++ b/packages/system-wasm/package.json @@ -0,0 +1,17 @@ +{ + "name": "@snort/system-wasm", + "version": "1.0.0", + "packageManager": "yarn@3.6.3", + "author": "Kieran", + "license": "MIT", + "scripts": { + "build": "wasm-pack build -t web -s snort" + }, + "files": [ + "pkg/system_wasm_bg.wasm", + "pkg/system_wasm.js", + "pkg/system_wasm.d.ts" + ], + "module": "pkg/system_wasm.js", + "types": "pkg/system_wasm.d.ts" +} diff --git a/packages/system-query/src/diff.rs b/packages/system-wasm/src/diff.rs similarity index 100% rename from packages/system-query/src/diff.rs rename to packages/system-wasm/src/diff.rs diff --git a/packages/system-query/src/filter.rs b/packages/system-wasm/src/filter.rs similarity index 100% rename from packages/system-query/src/filter.rs rename to packages/system-wasm/src/filter.rs diff --git a/packages/system-query/src/lib.rs b/packages/system-wasm/src/lib.rs similarity index 100% rename from packages/system-query/src/lib.rs rename to packages/system-wasm/src/lib.rs diff --git a/packages/system-query/src/merge.rs b/packages/system-wasm/src/merge.rs similarity index 100% rename from packages/system-query/src/merge.rs rename to packages/system-wasm/src/merge.rs diff --git a/packages/system-query/src/utils.rs b/packages/system-wasm/src/utils.rs similarity index 100% rename from packages/system-query/src/utils.rs rename to packages/system-wasm/src/utils.rs diff --git a/packages/system-query/system-query.iml b/packages/system-wasm/system-query.iml similarity index 100% rename from packages/system-query/system-query.iml rename to packages/system-wasm/system-query.iml diff --git a/yarn.lock b/yarn.lock index 8ba3aaa33..2d992d761 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2690,8 +2690,8 @@ __metadata: "@scure/bip39": ^1.1.1 "@snort/shared": "workspace:*" "@snort/system": "workspace:*" - "@snort/system-query": "workspace:*" "@snort/system-react": "workspace:*" + "@snort/system-wasm": "workspace:*" "@szhsin/react-menu": ^3.3.1 "@types/debug": ^4.1.8 "@types/jest": ^29.5.1 @@ -2770,12 +2770,6 @@ __metadata: languageName: unknown linkType: soft -"@snort/system-query@workspace:*, @snort/system-query@workspace:packages/system-query": - version: 0.0.0-use.local - resolution: "@snort/system-query@workspace:packages/system-query" - languageName: unknown - linkType: soft - "@snort/system-react@workspace:*, @snort/system-react@workspace:packages/system-react": version: 0.0.0-use.local resolution: "@snort/system-react@workspace:packages/system-react" @@ -2799,6 +2793,12 @@ __metadata: languageName: unknown linkType: soft +"@snort/system-wasm@workspace:*, @snort/system-wasm@workspace:packages/system-wasm": + version: 0.0.0-use.local + resolution: "@snort/system-wasm@workspace:packages/system-wasm" + languageName: unknown + linkType: soft + "@snort/system@^1.0.21, @snort/system@workspace:*, @snort/system@workspace:packages/system": version: 0.0.0-use.local resolution: "@snort/system@workspace:packages/system"