From bf7bc1ae40c9b686378c7e0b8cdd740ed2c78605 Mon Sep 17 00:00:00 2001 From: Alexey Kudelko Date: Wed, 21 May 2025 15:54:15 +0300 Subject: [PATCH] first --- example.html | 39 ++++++++ hublib.d.ts | 97 +++++++++++++++++++ hublib.js | 226 ++++++++++++++++++++++++++++++++++++++++++++ hublib_bg.wasm | Bin 0 -> 46253 bytes hublib_bg.wasm.d.ts | 70 ++++++++++++++ package.json | 15 +++ 6 files changed, 447 insertions(+) create mode 100644 example.html create mode 100644 hublib.d.ts create mode 100644 hublib.js create mode 100644 hublib_bg.wasm create mode 100644 hublib_bg.wasm.d.ts create mode 100644 package.json diff --git a/example.html b/example.html new file mode 100644 index 0000000..d028aa6 --- /dev/null +++ b/example.html @@ -0,0 +1,39 @@ + + + + + + WASM Example + + +

WASM Example

+
+ + +
+
+ + +
+ +

+ + + + \ No newline at end of file diff --git a/hublib.d.ts b/hublib.d.ts new file mode 100644 index 0000000..47b60e1 --- /dev/null +++ b/hublib.d.ts @@ -0,0 +1,97 @@ +/* tslint:disable */ +/* eslint-disable */ +export function get_secret_value(cur_time: bigint, user_agent: string, url: string): string; + +export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; + +export interface InitOutput { + readonly memory: WebAssembly.Memory; + readonly ffi_hublib_uniffi_contract_version: () => number; + readonly ffi_hublib_rustbuffer_alloc: (a: number, b: bigint, c: number) => void; + readonly ffi_hublib_rustbuffer_from_bytes: (a: number, b: number, c: number, d: number) => void; + readonly ffi_hublib_rustbuffer_free: (a: bigint, b: bigint, c: number, d: number, e: number) => void; + readonly ffi_hublib_rustbuffer_reserve: (a: number, b: bigint, c: bigint, d: number, e: number, f: bigint, g: number) => void; + readonly ffi_hublib_rust_future_poll_u8: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_u8: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_u8: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_u8: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_i8: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_i8: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_i8: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_i8: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_u16: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_u16: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_u16: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_u16: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_i16: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_i16: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_i16: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_i16: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_u32: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_u32: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_u32: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_u32: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_i32: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_i32: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_i32: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_i32: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_u64: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_u64: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_u64: (a: bigint, b: number) => bigint; + readonly ffi_hublib_rust_future_free_u64: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_i64: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_i64: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_i64: (a: bigint, b: number) => bigint; + readonly ffi_hublib_rust_future_free_i64: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_f32: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_f32: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_f32: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_f32: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_f64: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_f64: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_f64: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_f64: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_pointer: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_pointer: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_pointer: (a: bigint, b: number) => number; + readonly ffi_hublib_rust_future_free_pointer: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_rust_buffer: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_rust_buffer: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_rust_buffer: (a: number, b: bigint, c: number) => void; + readonly ffi_hublib_rust_future_free_rust_buffer: (a: bigint) => void; + readonly ffi_hublib_rust_future_poll_void: (a: bigint, b: number, c: bigint) => void; + readonly ffi_hublib_rust_future_cancel_void: (a: bigint) => void; + readonly ffi_hublib_rust_future_complete_void: (a: bigint, b: number) => void; + readonly ffi_hublib_rust_future_free_void: (a: bigint) => void; + readonly uniffi_hublib_fn_func_get_secret_value: (a: number, b: bigint, c: bigint, d: bigint, e: number, f: number, g: bigint, h: bigint, i: number, j: number, k: number) => void; + readonly uniffi_hublib_checksum_func_get_secret_value: () => number; + readonly get_secret_value: (a: bigint, b: number, c: number, d: number, e: number) => [number, number]; + readonly uniffi_hublib_fn_func_validate_secret_value: (a: bigint, b: bigint, c: bigint, d: number, e: number, f: bigint, g: bigint, h: number, i: number, j: bigint, k: bigint, l: number, m: number, n: number) => number; + readonly uniffi_hublib_checksum_func_validate_secret_value: () => number; + readonly __wbindgen_export_0: WebAssembly.Table; + readonly __wbindgen_malloc: (a: number, b: number) => number; + readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; + readonly __wbindgen_free: (a: number, b: number, c: number) => void; + readonly __wbindgen_start: () => void; +} + +export type SyncInitInput = BufferSource | WebAssembly.Module; +/** +* Instantiates the given `module`, which can either be bytes or +* a precompiled `WebAssembly.Module`. +* +* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. +* +* @returns {InitOutput} +*/ +export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput; + +/** +* If `module_or_path` is {RequestInfo} or {URL}, makes a request and +* for everything else, calls `WebAssembly.instantiate` directly. +* +* @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. +* +* @returns {Promise} +*/ +export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise } | InitInput | Promise): Promise; diff --git a/hublib.js b/hublib.js new file mode 100644 index 0000000..9b7fb9e --- /dev/null +++ b/hublib.js @@ -0,0 +1,226 @@ +let wasm; + +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(); }; + +let cachedUint8ArrayMemory0 = null; + +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +let WASM_VECTOR_LEN = 0; + +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; + 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; +} +/** + * @param {bigint} cur_time + * @param {string} user_agent + * @param {string} url + * @returns {string} + */ +export function get_secret_value(cur_time, user_agent, url) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(user_agent, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.get_secret_value(cur_time, ptr0, len0, ptr1, len1); + deferred3_0 = ret[0]; + deferred3_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } +} + +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.__wbg_getTime_46267b1c24877e30 = function(arg0) { + const ret = arg0.getTime(); + return ret; + }; + imports.wbg.__wbg_new0_f788a2397c7ca929 = function() { + const ret = new Date(); + return ret; + }; + imports.wbg.__wbindgen_init_externref_table = function() { + 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); + ; + }; + imports.wbg.__wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + + return imports; +} + +function __wbg_init_memory(imports, memory) { + +} + +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + __wbg_init.__wbindgen_wasm_module = module; + cachedUint8ArrayMemory0 = null; + + + wasm.__wbindgen_start(); + return wasm; +} + +function initSync(module) { + if (wasm !== undefined) return wasm; + + + if (typeof module !== 'undefined') { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + 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(module_or_path) { + if (wasm !== undefined) return wasm; + + + if (typeof module_or_path !== 'undefined') { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (typeof module_or_path === 'undefined') { + module_or_path = new URL('hublib_bg.wasm', import.meta.url); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + __wbg_init_memory(imports); + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module); +} + +export { initSync }; +export default __wbg_init; diff --git a/hublib_bg.wasm b/hublib_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..75e65be2959edd38578a23e78967e27bb6be5c24 GIT binary patch literal 46253 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 literal 0 HcmV?d00001 diff --git a/hublib_bg.wasm.d.ts b/hublib_bg.wasm.d.ts new file mode 100644 index 0000000..0996008 --- /dev/null +++ b/hublib_bg.wasm.d.ts @@ -0,0 +1,70 @@ +/* tslint:disable */ +/* eslint-disable */ +export const memory: WebAssembly.Memory; +export const ffi_hublib_uniffi_contract_version: () => number; +export const ffi_hublib_rustbuffer_alloc: (a: number, b: bigint, c: number) => void; +export const ffi_hublib_rustbuffer_from_bytes: (a: number, b: number, c: number, d: number) => void; +export const ffi_hublib_rustbuffer_free: (a: bigint, b: bigint, c: number, d: number, e: number) => void; +export const ffi_hublib_rustbuffer_reserve: (a: number, b: bigint, c: bigint, d: number, e: number, f: bigint, g: number) => void; +export const ffi_hublib_rust_future_poll_u8: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_u8: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_u8: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_u8: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_i8: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_i8: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_i8: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_i8: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_u16: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_u16: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_u16: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_u16: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_i16: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_i16: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_i16: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_i16: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_u32: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_u32: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_u32: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_u32: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_i32: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_i32: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_i32: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_i32: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_u64: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_u64: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_u64: (a: bigint, b: number) => bigint; +export const ffi_hublib_rust_future_free_u64: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_i64: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_i64: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_i64: (a: bigint, b: number) => bigint; +export const ffi_hublib_rust_future_free_i64: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_f32: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_f32: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_f32: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_f32: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_f64: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_f64: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_f64: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_f64: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_pointer: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_pointer: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_pointer: (a: bigint, b: number) => number; +export const ffi_hublib_rust_future_free_pointer: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_rust_buffer: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_rust_buffer: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_rust_buffer: (a: number, b: bigint, c: number) => void; +export const ffi_hublib_rust_future_free_rust_buffer: (a: bigint) => void; +export const ffi_hublib_rust_future_poll_void: (a: bigint, b: number, c: bigint) => void; +export const ffi_hublib_rust_future_cancel_void: (a: bigint) => void; +export const ffi_hublib_rust_future_complete_void: (a: bigint, b: number) => void; +export const ffi_hublib_rust_future_free_void: (a: bigint) => void; +export const uniffi_hublib_fn_func_get_secret_value: (a: number, b: bigint, c: bigint, d: bigint, e: number, f: number, g: bigint, h: bigint, i: number, j: number, k: number) => void; +export const uniffi_hublib_checksum_func_get_secret_value: () => number; +export const get_secret_value: (a: bigint, b: number, c: number, d: number, e: number) => [number, number]; +export const uniffi_hublib_fn_func_validate_secret_value: (a: bigint, b: bigint, c: bigint, d: number, e: number, f: bigint, g: bigint, h: number, i: number, j: bigint, k: bigint, l: number, m: number, n: number) => number; +export const uniffi_hublib_checksum_func_validate_secret_value: () => 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; +export const __wbindgen_free: (a: number, b: number, c: number) => void; +export const __wbindgen_start: () => void; diff --git a/package.json b/package.json new file mode 100644 index 0000000..a55712e --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "hublib", + "type": "module", + "version": "0.1.0", + "files": [ + "hublib_bg.wasm", + "hublib.js", + "hublib.d.ts" + ], + "main": "hublib.js", + "types": "hublib.d.ts", + "sideEffects": [ + "./snippets/*" + ] +} \ No newline at end of file