@latlng/wasm 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/assets/engine.worker-CkKJqc5H.js +1 -2
- package/dist/client.d.ts +0 -1
- package/dist/engine.worker.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -3
- package/dist/messages.d.ts +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/vite-plugin/index.d.ts +0 -1
- package/dist/vite-plugin/index.js +0 -2
- package/dist/wasm/latlng_core_bg.wasm +0 -0
- package/package.json +4 -2
- package/dist/assets/engine.worker-CkKJqc5H.js.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/engine.worker.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/messages.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/vite-plugin/index.d.ts.map +0 -1
- package/dist/vite-plugin/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -254,9 +254,10 @@ console.log(info.version, info.num_collections, info.num_objects);
|
|
|
254
254
|
- The wasm state is in-memory inside the worker and is lost when the worker is terminated or the page reloads.
|
|
255
255
|
- Serve `.wasm` files with `application/wasm` for fastest startup. The fallback still works but is slower.
|
|
256
256
|
- Bundlers must preserve the emitted worker asset and make `latlng_core_bg.wasm` available to the worker.
|
|
257
|
-
- Package builds run `wasm-bindgen` and
|
|
258
|
-
|
|
259
|
-
`
|
|
257
|
+
- Package builds run `wasm-bindgen` and attempt `wasm-opt -Oz` when Binaryen is
|
|
258
|
+
available. The final `.wasm` is always checked to ensure
|
|
259
|
+
`__wbindgen_externrefs` still points at an `externref` table; if optimization
|
|
260
|
+
corrupts that export, the build keeps the validated wasm-bindgen output.
|
|
260
261
|
|
|
261
262
|
## Bundling
|
|
262
263
|
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
(function(){let e;function t(t){let n=e.__externref_table_alloc();return e.__wbindgen_externrefs.set(n,t),n}function n(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,r=`[`;t>0&&(r+=n(e[0]));for(let i=1;i<t;i++)r+=`, `+n(e[i]);return r+=`]`,r}let r=/\[object ([^\]]+)\]/.exec(toString.call(e)),i;if(r&&r.length>1)i=r[1];else return toString.call(e);if(i==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:i}function r(e,t){return e>>>=0,c().subarray(e/1,e/1+t)}let i=null;function a(){return(i===null||i.buffer.detached===!0||i.buffer.detached===void 0&&i.buffer!==e.memory.buffer)&&(i=new DataView(e.memory.buffer)),i}function o(e,t){return e>>>=0,h(e,t)}let s=null;function c(){return(s===null||s.byteLength===0)&&(s=new Uint8Array(e.memory.buffer)),s}function l(n,r){try{return n.apply(this,r)}catch(n){let r=t(n);e.__wbindgen_exn_store(r)}}function u(e){return e==null}function d(e,t,n){if(n===void 0){let n=g.encode(e),r=t(n.length,1)>>>0;return c().subarray(r,r+n.length).set(n),_=n.length,r}let r=e.length,i=t(r,1)>>>0,a=c(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=c().subarray(i+o,i+r),a=g.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return _=o,i}function f(t){let n=e.__wbindgen_externrefs.get(t);return e.__externref_table_dealloc(t),n}let p=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});p.decode();let m=0;function h(e,t){return m+=t,m>=2146435072&&(p=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),p.decode(),m=t),p.decode(c().subarray(e,e+t))}let g=new TextEncoder;`encodeInto`in g||(g.encodeInto=function(e,t){let n=g.encode(e);return t.set(n),{read:e.length,written:n.length}});let _=0,v=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>e.__wbg_browserlatlng_free(t>>>0,1));var y=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,v.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_browserlatlng_free(t,0)}get_object(t,n,r){let i=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),a=_,o=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_,c=e.browserlatlng_get_object(this.__wbg_ptr,i,a,o,s,r);if(c[2])throw f(c[1]);return f(c[0])}set_object(t,n,r){let i=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),a=_,o=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_,c=e.browserlatlng_set_object(this.__wbg_ptr,i,a,o,s,r);if(c[2])throw f(c[1]);return f(c[0])}collections(t){var n=u(t)?0:d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_;let i=e.browserlatlng_collections(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}delete_hook(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_delete_hook(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return i[0]!==0}server_info(){let t=e.browserlatlng_server_info(this.__wbg_ptr);if(t[2])throw f(t[1]);return f(t[0])}nearby_query(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_nearby_query(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}within_query(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_within_query(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}delete_object(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),o=_,s=e.browserlatlng_delete_object(this.__wbg_ptr,r,i,a,o);if(s[2])throw f(s[1]);return f(s[0])}collection_info(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_collection_info(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}drop_collection(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_drop_collection(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}intersects_query(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_intersects_query(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}create_collection(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_create_collection(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}constructor(){let t=e.browserlatlng_new();if(t[2])throw f(t[1]);return this.__wbg_ptr=t[0]>>>0,v.register(this,this.__wbg_ptr,this),this}ttl(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),o=_,s=e.browserlatlng_ttl(this.__wbg_ptr,r,i,a,o);if(s[2])throw f(s[1]);return f(s[0])}hook(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_hook(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}scan(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_scan(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}hooks(t){var n=u(t)?0:d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_;let i=e.browserlatlng_hooks(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}stats(t){let n=e.browserlatlng_stats(this.__wbg_ptr,t);if(n[2])throw f(n[1]);return f(n[0])}bounds(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_bounds(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}expire(t,n,r){let i=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),a=_,o=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_,c=e.browserlatlng_expire(this.__wbg_ptr,i,a,o,s,r);if(c[2])throw f(c[1]);return f(c[0])}search(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_search(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}persist(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),o=_,s=e.browserlatlng_persist(this.__wbg_ptr,r,i,a,o);if(s[2])throw f(s[1]);return f(s[0])}set_hook(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_set_hook(this.__wbg_ptr,r,i,n);if(a[1])throw f(a[0])}};Symbol.dispose&&(y.prototype[Symbol.dispose]=y.prototype.free);let b=new Set([`basic`,`cors`,`default`]);async function x(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&b.has(e.type)&&e.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",t);else throw t}let n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function S(){let t={};return t.wbg={},t.wbg.__wbg_Error_52673b7de5a0ca89=function(e,t){return Error(o(e,t))},t.wbg.__wbg_Number_2d1dcfcf4ec51736=function(e){return Number(e)},t.wbg.__wbg_String_8f0eb39a4a4c2f66=function(t,n){let r=d(String(n),e.__wbindgen_malloc,e.__wbindgen_realloc),i=_;a().setInt32(t+4,i,!0),a().setInt32(t+0,r,!0)},t.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d=function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;a().setBigInt64(e+8,u(r)?BigInt(0):r,!0),a().setInt32(e+0,!u(r),!0)},t.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(e){let t=e,n=typeof t==`boolean`?t:void 0;return u(n)?16777215:+!!n},t.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(t,r){let i=d(n(r),e.__wbindgen_malloc,e.__wbindgen_realloc),o=_;a().setInt32(t+4,o,!0),a().setInt32(t+0,i,!0)},t.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317=function(e,t){return e in t},t.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27=function(e){return typeof e==`bigint`},t.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(e){return typeof e==`function`},t.wbg.__wbg___wbindgen_is_null_dfda7d66506c95b5=function(e){return e===null},t.wbg.__wbg___wbindgen_is_object_ce774f3490692386=function(e){let t=e;return typeof t==`object`&&!!t},t.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030=function(e){return typeof e==`string`},t.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(e){return e===void 0},t.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36=function(e,t){return e===t},t.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(e,t){return e==t},t.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(e,t){let n=t,r=typeof n==`number`?n:void 0;a().setFloat64(e+8,u(r)?0:r,!0),a().setInt32(e+0,!u(r),!0)},t.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(t,n){let r=n,i=typeof r==`string`?r:void 0;var o=u(i)?0:d(i,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_;a().setInt32(t+4,s,!0),a().setInt32(t+0,o,!0)},t.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(e,t){throw Error(o(e,t))},t.wbg.__wbg_call_abb4ff46ce38be40=function(){return l(function(e,t){return e.call(t)},arguments)},t.wbg.__wbg_done_62ea16af4ce34b24=function(e){return e.done},t.wbg.__wbg_entries_83c79938054e065f=function(e){return Object.entries(e)},t.wbg.__wbg_get_6b7bd52aca3f9671=function(e,t){return e[t>>>0]},t.wbg.__wbg_get_af9dab7e9603ea93=function(){return l(function(e,t){return Reflect.get(e,t)},arguments)},t.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(e,t){return e[t]},t.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},t.wbg.__wbg_instanceof_Map_084be8da74364158=function(e){let t;try{t=e instanceof Map}catch{t=!1}return t},t.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},t.wbg.__wbg_isArray_51fd9e6422c0a395=function(e){return Array.isArray(e)},t.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16=function(e){return Number.isSafeInteger(e)},t.wbg.__wbg_iterator_27b7c8b35ab3e86b=function(){return Symbol.iterator},t.wbg.__wbg_length_22ac23eaec9d8053=function(e){return e.length},t.wbg.__wbg_length_d45040a40c570362=function(e){return e.length},t.wbg.__wbg_new_1ba21ce319a06297=function(){return{}},t.wbg.__wbg_new_25f239778d6112b9=function(){return[]},t.wbg.__wbg_new_6421f6084cc5bc5a=function(e){return new Uint8Array(e)},t.wbg.__wbg_new_b546ae120718850e=function(){return new Map},t.wbg.__wbg_next_138a17bbf04e926c=function(e){return e.next},t.wbg.__wbg_next_3cfe5c0fe2a4cc53=function(){return l(function(e){return e.next()},arguments)},t.wbg.__wbg_now_69d776cd24f5215b=function(){return Date.now()},t.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(e,t,n){Uint8Array.prototype.set.call(r(e,t),n)},t.wbg.__wbg_set_3f1d0b984ed272ed=function(e,t,n){e[t]=n},t.wbg.__wbg_set_7df433eea03a5c14=function(e,t,n){e[t>>>0]=n},t.wbg.__wbg_set_efaaf145b9377369=function(e,t,n){return e.set(t,n)},t.wbg.__wbg_value_57b7b035e117f7ee=function(e){return e.value},t.wbg.__wbindgen_cast_2241b6af4c4b2941=function(e,t){return o(e,t)},t.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(e){return BigInt.asUintN(64,e)},t.wbg.__wbindgen_cast_9ae0607507abb057=function(e){return e},t.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(e){return e},t.wbg.__wbindgen_init_externref_table=function(){let t=e.__wbindgen_externrefs,n=t.grow(4);t.set(0,void 0),t.set(n+0,void 0),t.set(n+1,null),t.set(n+2,!0),t.set(n+3,!1)},t}function C(t,n){return e=t.exports,w.__wbindgen_wasm_module=n,i=null,s=null,e.__wbindgen_start(),e}async function w(t){if(e!==void 0)return e;if(t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),t===void 0)throw Error(`latlng wasm initialization requires an explicit wasm URL`);let n=S();(typeof t==`string`||typeof Request==`function`&&t instanceof Request||typeof URL==`function`&&t instanceof URL)&&(t=fetch(t));let{instance:r,module:i}=await x(await t,n);return C(r,i)}function T(e){return M(e,`geofence event`),{command:k(e.command),detect:A(e.detect),collection:N(e.collection,`event collection`),id:N(e.id,`event id`),object:O(e.object),fields:D(e.fields),timestamp_ns:typeof e.timestamp_ns==`number`?e.timestamp_ns:Number(e.timestamp_ns??0),event_id:typeof e.event_id==`string`?e.event_id:null,hook:typeof e.hook==`string`?e.hook:null,group:typeof e.group==`string`?e.group:null,nearby:j(e.nearby)&&typeof e.nearby.collection==`string`&&typeof e.nearby.id==`string`&&typeof e.nearby.meters==`number`?{collection:e.nearby.collection,id:e.nearby.id,meters:e.nearby.meters}:null}}function E(e){if(M(e,`field value`),e.type===`number`)return{type:`number`,value:Number(e.value)};if(e.type===`text`)return{type:`text`,value:String(e.value)};if(e.type===`json`){let t=String(e.value);try{return{type:`json`,value:JSON.parse(t)}}catch{return{type:`json`,value:t}}}throw Error(`unknown field value shape`)}function D(e){return!j(e)||!j(e.values)?{}:Object.fromEntries(Object.entries(e.values).map(([e,t])=>[e,E(t)]))}function O(e){if(M(e,`geo object`),`Point`in e){let t=e.Point;return M(t,`point`),{type:`point`,lat:Number(t.lat),lon:Number(t.lon),z:typeof t.z==`number`||t.z===null?t.z:void 0}}if(`Bounds`in e)return{type:`bounds`,bounds:e.Bounds};if(`Hash`in e)return{type:`hash`,value:String(e.Hash)};if(`GeoJson`in e)return{type:`geojson`,value:e.GeoJson};if(`String`in e)return{type:`string`,value:String(e.String)};throw Error(`unknown geo object shape`)}function k(e){switch(e){case`Set`:case`set`:return`set`;case`Del`:case`del`:return`del`;case`Drop`:case`drop`:return`drop`;case`Fset`:case`fset`:return`fset`;default:throw Error(`unknown mutation command: ${String(e)}`)}}function A(e){switch(e){case`Inside`:case`inside`:return`inside`;case`Outside`:case`outside`:return`outside`;case`Enter`:case`enter`:return`enter`;case`Exit`:case`exit`:return`exit`;case`Cross`:case`cross`:return`cross`;case`Roam`:case`roam`:return`roam`;default:throw Error(`unknown detect type: ${String(e)}`)}}function j(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function M(e,t){if(!j(e))throw Error(`${t} must be an object`)}function N(e,t){if(typeof e!=`string`)throw Error(`${t} must be a string`);return e}let P,F;function I(){let e=F??new URL([`..`,`wasm`,`latlng_core_bg.wasm`].join(`/`),self.location.href);return P??=w(e).then(()=>new y),P}self.addEventListener(`message`,e=>{L(e.data)});async function L(e){try{if(e.method===`init`){let t=await R(e.params);H({id:e.id,ok:!0,result:t});return}let t=await z(await I(),e.method,e.params);H({id:e.id,ok:!0,result:t})}catch(t){H({id:e.id,ok:!1,error:t instanceof Error?t.message:String(t)})}}async function R(e){let[t]=U(e);return!P&&typeof t==`string`&&t.length>0&&(F=t),(await I()).server_info()}async function z(e,t,n){switch(t){case`init`:return R(n);case`createCollection`:{let[t]=U(n),r=e.create_collection(t);return B({type:`collection:create`,collection:t,changed:r.result}),V(r.events),r.result}case`dropCollection`:{let[t]=U(n),r=e.drop_collection(t);return B({type:`collection:drop`,collection:t,changed:r.result}),V(r.events),r.result}case`collections`:{let[t]=U(n);return e.collections(t)}case`collectionInfo`:{let[t]=U(n);return e.collection_info(t)}case`setObject`:{let[t,r,i]=U(n),a=e.set_object(t,r,i);return B({type:`object:set`,collection:t,id:r,changed:a.result}),V(a.events),a.result}case`getObject`:{let[t,r,i]=U(n);return e.get_object(t,r,i)}case`deleteObject`:{let[t,r]=U(n),i=e.delete_object(t,r);return B({type:`object:delete`,collection:t,id:r,changed:i.result}),V(i.events),i.result}case`expire`:{let[t,r,i]=U(n),a=e.expire(t,r,i);return B({type:`object:expire`,collection:t,id:r,changed:a.result}),a.result}case`persist`:{let[t,r]=U(n),i=e.persist(t,r);return B({type:`object:persist`,collection:t,id:r,changed:i.result}),i.result}case`ttl`:{let[t,r]=U(n);return e.ttl(t,r)}case`setHook`:{let[t,r]=U(n);return e.set_hook(t,r),B({type:`hook:set`,hook:t,changed:!0}),!0}case`deleteHook`:{let[t]=U(n),r=e.delete_hook(t);return B({type:`hook:delete`,hook:t,changed:r}),r}case`hooks`:{let[t]=U(n);return e.hooks(t)}case`getHook`:{let[t]=U(n);return e.hook(t)}case`nearby`:{let[t,r]=U(n);return e.nearby_query(t,r)}case`within`:{let[t,r]=U(n);return e.within_query(t,r)}case`intersects`:{let[t,r]=U(n);return e.intersects_query(t,r)}case`scan`:{let[t,r]=U(n);return e.scan(t,r)}case`search`:{let[t,r]=U(n);return e.search(t,r)}case`bounds`:{let[t]=U(n);return e.bounds(t)}case`stats`:{let[t]=U(n);return e.stats(t)}case`serverInfo`:return e.server_info()}}function B(e){H({type:`event`,eventType:`mutation`,event:e})}function V(e){for(let t of e)H({type:`event`,eventType:`geofence`,event:T(t)})}function H(e){self.postMessage(e)}function U(e){return e}})();
|
|
2
|
-
//# sourceMappingURL=engine.worker-CkKJqc5H.js.map
|
|
1
|
+
(function(){let e;function t(t){let n=e.__externref_table_alloc();return e.__wbindgen_externrefs.set(n,t),n}function n(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,r=`[`;t>0&&(r+=n(e[0]));for(let i=1;i<t;i++)r+=`, `+n(e[i]);return r+=`]`,r}let r=/\[object ([^\]]+)\]/.exec(toString.call(e)),i;if(r&&r.length>1)i=r[1];else return toString.call(e);if(i==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:i}function r(e,t){return e>>>=0,c().subarray(e/1,e/1+t)}let i=null;function a(){return(i===null||i.buffer.detached===!0||i.buffer.detached===void 0&&i.buffer!==e.memory.buffer)&&(i=new DataView(e.memory.buffer)),i}function o(e,t){return e>>>=0,h(e,t)}let s=null;function c(){return(s===null||s.byteLength===0)&&(s=new Uint8Array(e.memory.buffer)),s}function l(n,r){try{return n.apply(this,r)}catch(n){let r=t(n);e.__wbindgen_exn_store(r)}}function u(e){return e==null}function d(e,t,n){if(n===void 0){let n=g.encode(e),r=t(n.length,1)>>>0;return c().subarray(r,r+n.length).set(n),_=n.length,r}let r=e.length,i=t(r,1)>>>0,a=c(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=c().subarray(i+o,i+r),a=g.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return _=o,i}function f(t){let n=e.__wbindgen_externrefs.get(t);return e.__externref_table_dealloc(t),n}let p=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});p.decode();let m=0;function h(e,t){return m+=t,m>=2146435072&&(p=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),p.decode(),m=t),p.decode(c().subarray(e,e+t))}let g=new TextEncoder;`encodeInto`in g||(g.encodeInto=function(e,t){let n=g.encode(e);return t.set(n),{read:e.length,written:n.length}});let _=0,v=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>e.__wbg_browserlatlng_free(t>>>0,1));var y=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,v.unregister(this),e}free(){let t=this.__destroy_into_raw();e.__wbg_browserlatlng_free(t,0)}get_object(t,n,r){let i=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),a=_,o=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_,c=e.browserlatlng_get_object(this.__wbg_ptr,i,a,o,s,r);if(c[2])throw f(c[1]);return f(c[0])}set_object(t,n,r){let i=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),a=_,o=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_,c=e.browserlatlng_set_object(this.__wbg_ptr,i,a,o,s,r);if(c[2])throw f(c[1]);return f(c[0])}collections(t){var n=u(t)?0:d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_;let i=e.browserlatlng_collections(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}delete_hook(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_delete_hook(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return i[0]!==0}server_info(){let t=e.browserlatlng_server_info(this.__wbg_ptr);if(t[2])throw f(t[1]);return f(t[0])}nearby_query(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_nearby_query(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}within_query(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_within_query(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}delete_object(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),o=_,s=e.browserlatlng_delete_object(this.__wbg_ptr,r,i,a,o);if(s[2])throw f(s[1]);return f(s[0])}collection_info(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_collection_info(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}drop_collection(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_drop_collection(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}intersects_query(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_intersects_query(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}create_collection(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_create_collection(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}constructor(){let t=e.browserlatlng_new();if(t[2])throw f(t[1]);return this.__wbg_ptr=t[0]>>>0,v.register(this,this.__wbg_ptr,this),this}ttl(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),o=_,s=e.browserlatlng_ttl(this.__wbg_ptr,r,i,a,o);if(s[2])throw f(s[1]);return f(s[0])}hook(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_hook(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}scan(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_scan(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}hooks(t){var n=u(t)?0:d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_;let i=e.browserlatlng_hooks(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}stats(t){let n=e.browserlatlng_stats(this.__wbg_ptr,t);if(n[2])throw f(n[1]);return f(n[0])}bounds(t){let n=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),r=_,i=e.browserlatlng_bounds(this.__wbg_ptr,n,r);if(i[2])throw f(i[1]);return f(i[0])}expire(t,n,r){let i=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),a=_,o=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_,c=e.browserlatlng_expire(this.__wbg_ptr,i,a,o,s,r);if(c[2])throw f(c[1]);return f(c[0])}search(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_search(this.__wbg_ptr,r,i,n);if(a[2])throw f(a[1]);return f(a[0])}persist(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=d(n,e.__wbindgen_malloc,e.__wbindgen_realloc),o=_,s=e.browserlatlng_persist(this.__wbg_ptr,r,i,a,o);if(s[2])throw f(s[1]);return f(s[0])}set_hook(t,n){let r=d(t,e.__wbindgen_malloc,e.__wbindgen_realloc),i=_,a=e.browserlatlng_set_hook(this.__wbg_ptr,r,i,n);if(a[1])throw f(a[0])}};Symbol.dispose&&(y.prototype[Symbol.dispose]=y.prototype.free);let b=new Set([`basic`,`cors`,`default`]);async function x(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&b.has(e.type)&&e.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",t);else throw t}let n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function S(){let t={};return t.wbg={},t.wbg.__wbg_Error_52673b7de5a0ca89=function(e,t){return Error(o(e,t))},t.wbg.__wbg_Number_2d1dcfcf4ec51736=function(e){return Number(e)},t.wbg.__wbg_String_8f0eb39a4a4c2f66=function(t,n){let r=d(String(n),e.__wbindgen_malloc,e.__wbindgen_realloc),i=_;a().setInt32(t+4,i,!0),a().setInt32(t+0,r,!0)},t.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d=function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;a().setBigInt64(e+8,u(r)?BigInt(0):r,!0),a().setInt32(e+0,!u(r),!0)},t.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(e){let t=e,n=typeof t==`boolean`?t:void 0;return u(n)?16777215:+!!n},t.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(t,r){let i=d(n(r),e.__wbindgen_malloc,e.__wbindgen_realloc),o=_;a().setInt32(t+4,o,!0),a().setInt32(t+0,i,!0)},t.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317=function(e,t){return e in t},t.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27=function(e){return typeof e==`bigint`},t.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(e){return typeof e==`function`},t.wbg.__wbg___wbindgen_is_null_dfda7d66506c95b5=function(e){return e===null},t.wbg.__wbg___wbindgen_is_object_ce774f3490692386=function(e){let t=e;return typeof t==`object`&&!!t},t.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030=function(e){return typeof e==`string`},t.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(e){return e===void 0},t.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36=function(e,t){return e===t},t.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(e,t){return e==t},t.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(e,t){let n=t,r=typeof n==`number`?n:void 0;a().setFloat64(e+8,u(r)?0:r,!0),a().setInt32(e+0,!u(r),!0)},t.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(t,n){let r=n,i=typeof r==`string`?r:void 0;var o=u(i)?0:d(i,e.__wbindgen_malloc,e.__wbindgen_realloc),s=_;a().setInt32(t+4,s,!0),a().setInt32(t+0,o,!0)},t.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(e,t){throw Error(o(e,t))},t.wbg.__wbg_call_abb4ff46ce38be40=function(){return l(function(e,t){return e.call(t)},arguments)},t.wbg.__wbg_done_62ea16af4ce34b24=function(e){return e.done},t.wbg.__wbg_entries_83c79938054e065f=function(e){return Object.entries(e)},t.wbg.__wbg_get_6b7bd52aca3f9671=function(e,t){return e[t>>>0]},t.wbg.__wbg_get_af9dab7e9603ea93=function(){return l(function(e,t){return Reflect.get(e,t)},arguments)},t.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(e,t){return e[t]},t.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},t.wbg.__wbg_instanceof_Map_084be8da74364158=function(e){let t;try{t=e instanceof Map}catch{t=!1}return t},t.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},t.wbg.__wbg_isArray_51fd9e6422c0a395=function(e){return Array.isArray(e)},t.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16=function(e){return Number.isSafeInteger(e)},t.wbg.__wbg_iterator_27b7c8b35ab3e86b=function(){return Symbol.iterator},t.wbg.__wbg_length_22ac23eaec9d8053=function(e){return e.length},t.wbg.__wbg_length_d45040a40c570362=function(e){return e.length},t.wbg.__wbg_new_1ba21ce319a06297=function(){return{}},t.wbg.__wbg_new_25f239778d6112b9=function(){return[]},t.wbg.__wbg_new_6421f6084cc5bc5a=function(e){return new Uint8Array(e)},t.wbg.__wbg_new_b546ae120718850e=function(){return new Map},t.wbg.__wbg_next_138a17bbf04e926c=function(e){return e.next},t.wbg.__wbg_next_3cfe5c0fe2a4cc53=function(){return l(function(e){return e.next()},arguments)},t.wbg.__wbg_now_69d776cd24f5215b=function(){return Date.now()},t.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(e,t,n){Uint8Array.prototype.set.call(r(e,t),n)},t.wbg.__wbg_set_3f1d0b984ed272ed=function(e,t,n){e[t]=n},t.wbg.__wbg_set_7df433eea03a5c14=function(e,t,n){e[t>>>0]=n},t.wbg.__wbg_set_efaaf145b9377369=function(e,t,n){return e.set(t,n)},t.wbg.__wbg_value_57b7b035e117f7ee=function(e){return e.value},t.wbg.__wbindgen_cast_2241b6af4c4b2941=function(e,t){return o(e,t)},t.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(e){return BigInt.asUintN(64,e)},t.wbg.__wbindgen_cast_9ae0607507abb057=function(e){return e},t.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(e){return e},t.wbg.__wbindgen_init_externref_table=function(){let t=e.__wbindgen_externrefs,n=t.grow(4);t.set(0,void 0),t.set(n+0,void 0),t.set(n+1,null),t.set(n+2,!0),t.set(n+3,!1)},t}function C(t,n){return e=t.exports,w.__wbindgen_wasm_module=n,i=null,s=null,e.__wbindgen_start(),e}async function w(t){if(e!==void 0)return e;if(t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),t===void 0)throw Error(`latlng wasm initialization requires an explicit wasm URL`);let n=S();(typeof t==`string`||typeof Request==`function`&&t instanceof Request||typeof URL==`function`&&t instanceof URL)&&(t=fetch(t));let{instance:r,module:i}=await x(await t,n);return C(r,i)}function T(e){return M(e,`geofence event`),{command:k(e.command),detect:A(e.detect),collection:N(e.collection,`event collection`),id:N(e.id,`event id`),object:O(e.object),fields:D(e.fields),timestamp_ns:typeof e.timestamp_ns==`number`?e.timestamp_ns:Number(e.timestamp_ns??0),event_id:typeof e.event_id==`string`?e.event_id:null,hook:typeof e.hook==`string`?e.hook:null,group:typeof e.group==`string`?e.group:null,nearby:j(e.nearby)&&typeof e.nearby.collection==`string`&&typeof e.nearby.id==`string`&&typeof e.nearby.meters==`number`?{collection:e.nearby.collection,id:e.nearby.id,meters:e.nearby.meters}:null}}function E(e){if(M(e,`field value`),e.type===`number`)return{type:`number`,value:Number(e.value)};if(e.type===`text`)return{type:`text`,value:String(e.value)};if(e.type===`json`){let t=String(e.value);try{return{type:`json`,value:JSON.parse(t)}}catch{return{type:`json`,value:t}}}throw Error(`unknown field value shape`)}function D(e){return!j(e)||!j(e.values)?{}:Object.fromEntries(Object.entries(e.values).map(([e,t])=>[e,E(t)]))}function O(e){if(M(e,`geo object`),`Point`in e){let t=e.Point;return M(t,`point`),{type:`point`,lat:Number(t.lat),lon:Number(t.lon),z:typeof t.z==`number`||t.z===null?t.z:void 0}}if(`Bounds`in e)return{type:`bounds`,bounds:e.Bounds};if(`Hash`in e)return{type:`hash`,value:String(e.Hash)};if(`GeoJson`in e)return{type:`geojson`,value:e.GeoJson};if(`String`in e)return{type:`string`,value:String(e.String)};throw Error(`unknown geo object shape`)}function k(e){switch(e){case`Set`:case`set`:return`set`;case`Del`:case`del`:return`del`;case`Drop`:case`drop`:return`drop`;case`Fset`:case`fset`:return`fset`;default:throw Error(`unknown mutation command: ${String(e)}`)}}function A(e){switch(e){case`Inside`:case`inside`:return`inside`;case`Outside`:case`outside`:return`outside`;case`Enter`:case`enter`:return`enter`;case`Exit`:case`exit`:return`exit`;case`Cross`:case`cross`:return`cross`;case`Roam`:case`roam`:return`roam`;default:throw Error(`unknown detect type: ${String(e)}`)}}function j(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function M(e,t){if(!j(e))throw Error(`${t} must be an object`)}function N(e,t){if(typeof e!=`string`)throw Error(`${t} must be a string`);return e}let P,F;function I(){let e=F??new URL([`..`,`wasm`,`latlng_core_bg.wasm`].join(`/`),self.location.href);return P??=w(e).then(()=>new y),P}self.addEventListener(`message`,e=>{L(e.data)});async function L(e){try{if(e.method===`init`){let t=await R(e.params);H({id:e.id,ok:!0,result:t});return}let t=await z(await I(),e.method,e.params);H({id:e.id,ok:!0,result:t})}catch(t){H({id:e.id,ok:!1,error:t instanceof Error?t.message:String(t)})}}async function R(e){let[t]=U(e);return!P&&typeof t==`string`&&t.length>0&&(F=t),(await I()).server_info()}async function z(e,t,n){switch(t){case`init`:return R(n);case`createCollection`:{let[t]=U(n),r=e.create_collection(t);return B({type:`collection:create`,collection:t,changed:r.result}),V(r.events),r.result}case`dropCollection`:{let[t]=U(n),r=e.drop_collection(t);return B({type:`collection:drop`,collection:t,changed:r.result}),V(r.events),r.result}case`collections`:{let[t]=U(n);return e.collections(t)}case`collectionInfo`:{let[t]=U(n);return e.collection_info(t)}case`setObject`:{let[t,r,i]=U(n),a=e.set_object(t,r,i);return B({type:`object:set`,collection:t,id:r,changed:a.result}),V(a.events),a.result}case`getObject`:{let[t,r,i]=U(n);return e.get_object(t,r,i)}case`deleteObject`:{let[t,r]=U(n),i=e.delete_object(t,r);return B({type:`object:delete`,collection:t,id:r,changed:i.result}),V(i.events),i.result}case`expire`:{let[t,r,i]=U(n),a=e.expire(t,r,i);return B({type:`object:expire`,collection:t,id:r,changed:a.result}),a.result}case`persist`:{let[t,r]=U(n),i=e.persist(t,r);return B({type:`object:persist`,collection:t,id:r,changed:i.result}),i.result}case`ttl`:{let[t,r]=U(n);return e.ttl(t,r)}case`setHook`:{let[t,r]=U(n);return e.set_hook(t,r),B({type:`hook:set`,hook:t,changed:!0}),!0}case`deleteHook`:{let[t]=U(n),r=e.delete_hook(t);return B({type:`hook:delete`,hook:t,changed:r}),r}case`hooks`:{let[t]=U(n);return e.hooks(t)}case`getHook`:{let[t]=U(n);return e.hook(t)}case`nearby`:{let[t,r]=U(n);return e.nearby_query(t,r)}case`within`:{let[t,r]=U(n);return e.within_query(t,r)}case`intersects`:{let[t,r]=U(n);return e.intersects_query(t,r)}case`scan`:{let[t,r]=U(n);return e.scan(t,r)}case`search`:{let[t,r]=U(n);return e.search(t,r)}case`bounds`:{let[t]=U(n);return e.bounds(t)}case`stats`:{let[t]=U(n);return e.stats(t)}case`serverInfo`:return e.server_info()}}function B(e){H({type:`event`,eventType:`mutation`,event:e})}function V(e){for(let t of e)H({type:`event`,eventType:`geofence`,event:T(t)})}function H(e){self.postMessage(e)}function U(e){return e}})();
|
package/dist/client.d.ts
CHANGED
package/dist/engine.worker.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export { createLatLng, LatLngWasmClient, type CreateLatLngOptions } from "./client.js";
|
|
2
2
|
export type { Area, AreaQuery, BoundingBox, CollectionInfo, CollectionStats, DetectType, FieldEntry, FieldMap, FieldValue, GeofenceDef, GeofenceEvent, GeofenceQuery, GeoObject, HookDef, HookInfo, JsonValue, LatLngObject, LatLngWasmEventMap, MutationCommand, MutationEvent, NearbyQuery, OutputFormat, RoamingInfo, SearchItem, SearchOptions, SearchResults, ServerInfo, SetObjectOptions, SortOrder, WhereComparison, WhereExprFilter, WhereFilter, WhereInFilter, } from "./types.js";
|
|
3
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/engine.worker.ts?worker
|
|
2
2
|
function e(e) {
|
|
3
|
-
return new Worker("
|
|
3
|
+
return new Worker("" + new URL("assets/engine.worker-CkKJqc5H.js", import.meta.url).href, { name: e?.name });
|
|
4
4
|
}
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region src/types.ts
|
|
@@ -572,5 +572,3 @@ async function M(t = {}) {
|
|
|
572
572
|
}
|
|
573
573
|
//#endregion
|
|
574
574
|
export { j as LatLngWasmClient, M as createLatLng };
|
|
575
|
-
|
|
576
|
-
//# sourceMappingURL=index.js.map
|
package/dist/messages.d.ts
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -385,4 +385,3 @@ export declare function fromWireObject(value: unknown): LatLngObject | null;
|
|
|
385
385
|
export declare function fromWireSearchResults(value: unknown): SearchResults;
|
|
386
386
|
export declare function fromWireGeofenceEvent(value: unknown): GeofenceEvent;
|
|
387
387
|
export declare function fromWireHookDef(value: unknown): HookDef | null;
|
|
388
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -34,4 +34,3 @@ export declare function getLatLngWasmPath(): string;
|
|
|
34
34
|
/** Copies `latlng_core_bg.wasm` into Vite's build output for worker runtime loading. */
|
|
35
35
|
export declare function latlngWasmPlugin(options?: LatLngWasmPluginOptions): Plugin;
|
|
36
36
|
export default latlngWasmPlugin;
|
|
37
|
-
//# sourceMappingURL=index.d.ts.map
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@latlng/wasm",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Browser Web Worker and WebAssembly package for the latlng geospatial object engine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
|
-
"dist",
|
|
20
|
+
"dist/**/*.d.ts",
|
|
21
|
+
"dist/**/*.js",
|
|
22
|
+
"dist/**/*.wasm",
|
|
21
23
|
"README.md",
|
|
22
24
|
"LICENSE"
|
|
23
25
|
],
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.worker-CkKJqc5H.js","names":["ret"],"sources":["../../pkg/latlng_core.js","../../src/types.ts","../../src/engine.worker.ts"],"sourcesContent":["let wasm;\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst BrowserLatLngFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_browserlatlng_free(ptr >>> 0, 1));\n\nexport class BrowserLatLng {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n BrowserLatLngFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_browserlatlng_free(ptr, 0);\n }\n /**\n * @param {string} collection\n * @param {string} id\n * @param {boolean} with_fields\n * @returns {any}\n */\n get_object(collection, id, with_fields) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_get_object(this.__wbg_ptr, ptr0, len0, ptr1, len1, with_fields);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {string} id\n * @param {any} request\n * @returns {any}\n */\n set_object(collection, id, request) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_set_object(this.__wbg_ptr, ptr0, len0, ptr1, len1, request);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string | null} [pattern]\n * @returns {any}\n */\n collections(pattern) {\n var ptr0 = isLikeNone(pattern) ? 0 : passStringToWasm0(pattern, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_collections(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} name\n * @returns {boolean}\n */\n delete_hook(name) {\n const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_delete_hook(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ret[0] !== 0;\n }\n /**\n * @returns {any}\n */\n server_info() {\n const ret = wasm.browserlatlng_server_info(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {any} query\n * @returns {any}\n */\n nearby_query(collection, query) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_nearby_query(this.__wbg_ptr, ptr0, len0, query);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {any} query\n * @returns {any}\n */\n within_query(collection, query) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_within_query(this.__wbg_ptr, ptr0, len0, query);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {string} id\n * @returns {any}\n */\n delete_object(collection, id) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_delete_object(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @returns {any}\n */\n collection_info(collection) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_collection_info(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @returns {any}\n */\n drop_collection(collection) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_drop_collection(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {any} query\n * @returns {any}\n */\n intersects_query(collection, query) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_intersects_query(this.__wbg_ptr, ptr0, len0, query);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @returns {any}\n */\n create_collection(collection) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_create_collection(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n constructor() {\n const ret = wasm.browserlatlng_new();\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n BrowserLatLngFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * @param {string} collection\n * @param {string} id\n * @returns {any}\n */\n ttl(collection, id) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_ttl(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} name\n * @returns {any}\n */\n hook(name) {\n const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_hook(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {any} options\n * @returns {any}\n */\n scan(collection, options) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_scan(this.__wbg_ptr, ptr0, len0, options);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string | null} [pattern]\n * @returns {any}\n */\n hooks(pattern) {\n var ptr0 = isLikeNone(pattern) ? 0 : passStringToWasm0(pattern, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_hooks(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {any} collections\n * @returns {any}\n */\n stats(collections) {\n const ret = wasm.browserlatlng_stats(this.__wbg_ptr, collections);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @returns {any}\n */\n bounds(collection) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_bounds(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {string} id\n * @param {number} seconds\n * @returns {any}\n */\n expire(collection, id, seconds) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_expire(this.__wbg_ptr, ptr0, len0, ptr1, len1, seconds);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {any} options\n * @returns {any}\n */\n search(collection, options) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_search(this.__wbg_ptr, ptr0, len0, options);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} collection\n * @param {string} id\n * @returns {any}\n */\n persist(collection, id) {\n const ptr0 = passStringToWasm0(collection, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_persist(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * @param {string} name\n * @param {any} request\n */\n set_hook(name, request) {\n const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.browserlatlng_set_hook(this.__wbg_ptr, ptr0, len0, request);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) BrowserLatLng.prototype[Symbol.dispose] = BrowserLatLng.prototype.free;\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n 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);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbg_Number_2d1dcfcf4ec51736 = function(arg0) {\n const ret = Number(arg0);\n return ret;\n };\n imports.wbg.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) {\n const ret = String(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d = function(arg0, arg1) {\n const v = arg1;\n const ret = typeof(v) === 'bigint' ? v : undefined;\n getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317 = function(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27 = function(arg0) {\n const ret = typeof(arg0) === 'bigint';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_null_dfda7d66506c95b5 = function(arg0) {\n const ret = arg0 === null;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030 = function(arg0) {\n const ret = typeof(arg0) === 'string';\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36 = function(arg0, arg1) {\n const ret = arg0 === arg1;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d = function(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_number_get_9619185a74197f95 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_done_62ea16af4ce34b24 = function(arg0) {\n const ret = arg0.done;\n return ret;\n };\n imports.wbg.__wbg_entries_83c79938054e065f = function(arg0) {\n const ret = Object.entries(arg0);\n return ret;\n };\n imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n };\n imports.wbg.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe = function(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n };\n imports.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Map_084be8da74364158 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof Map;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_isArray_51fd9e6422c0a395 = function(arg0) {\n const ret = Array.isArray(arg0);\n return ret;\n };\n imports.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16 = function(arg0) {\n const ret = Number.isSafeInteger(arg0);\n return ret;\n };\n imports.wbg.__wbg_iterator_27b7c8b35ab3e86b = function() {\n const ret = Symbol.iterator;\n return ret;\n };\n imports.wbg.__wbg_length_22ac23eaec9d8053 = function(arg0) {\n const ret = arg0.length;\n return ret;\n };\n imports.wbg.__wbg_length_d45040a40c570362 = function(arg0) {\n const ret = arg0.length;\n return ret;\n };\n imports.wbg.__wbg_new_1ba21ce319a06297 = function() {\n const ret = new Object();\n return ret;\n };\n imports.wbg.__wbg_new_25f239778d6112b9 = function() {\n const ret = new Array();\n return ret;\n };\n imports.wbg.__wbg_new_6421f6084cc5bc5a = function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n };\n imports.wbg.__wbg_new_b546ae120718850e = function() {\n const ret = new Map();\n return ret;\n };\n imports.wbg.__wbg_next_138a17bbf04e926c = function(arg0) {\n const ret = arg0.next;\n return ret;\n };\n imports.wbg.__wbg_next_3cfe5c0fe2a4cc53 = function() { return handleError(function (arg0) {\n const ret = arg0.next();\n return ret;\n }, arguments) };\n imports.wbg.__wbg_now_69d776cd24f5215b = function() {\n const ret = Date.now();\n return ret;\n };\n imports.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n };\n imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n };\n imports.wbg.__wbg_set_7df433eea03a5c14 = function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n };\n imports.wbg.__wbg_set_efaaf145b9377369 = function(arg0, arg1, arg2) {\n const ret = arg0.set(arg1, arg2);\n return ret;\n };\n imports.wbg.__wbg_value_57b7b035e117f7ee = function(arg0) {\n const ret = arg0.value;\n return ret;\n };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n };\n imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n };\n imports.wbg.__wbindgen_cast_9ae0607507abb057 = function(arg0) {\n // Cast intrinsic for `I64 -> Externref`.\n const ret = arg0;\n return ret;\n };\n imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n };\n imports.wbg.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n wasm.__wbindgen_start();\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n throw new Error('latlng wasm initialization requires an explicit wasm URL');\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","/** JSON value accepted by GeoJSON payloads and field values. */\nexport type JsonValue =\n | null\n | boolean\n | number\n | string\n | JsonValue[]\n | { [key: string]: JsonValue };\n\n/** Geographic bounding box expressed as min/max latitude and longitude. */\nexport interface BoundingBox {\n /** Southern latitude bound. */\n min_lat: number;\n /** Western longitude bound. */\n min_lon: number;\n /** Northern latitude bound. */\n max_lat: number;\n /** Eastern longitude bound. */\n max_lon: number;\n}\n\n/** Stored field value. */\nexport type FieldValue =\n | { type: \"number\"; value: number }\n | { type: \"text\"; value: string }\n | { type: \"json\"; value: JsonValue };\n\n/** Named field assignment. */\nexport interface FieldEntry {\n /** Field name. */\n name: string;\n /** Field value. */\n value: FieldValue;\n}\n\n/** Field map keyed by field name. */\nexport type FieldMap = Record<string, FieldValue>;\n\n/** Geographic object payload accepted by `setObject`. */\nexport type GeoObject =\n | { type: \"point\"; lat: number; lon: number; z?: number | null }\n | { type: \"bounds\"; bounds: BoundingBox }\n | { type: \"hash\"; value: string }\n | { type: \"geojson\"; value: JsonValue }\n | { type: \"string\"; value: string };\n\n/** Stored object returned by read and query operations. */\nexport interface LatLngObject {\n /** Object identifier. */\n id: string;\n /** Stored object payload. */\n geo: GeoObject;\n /** Stored field values. */\n fields: FieldMap;\n /** Expiration timestamp in milliseconds since epoch, or `null`. */\n expires_at: number | null;\n}\n\n/** Area definition used by spatial queries and geofence definitions. */\nexport type Area =\n | { type: \"circle\"; lat: number; lon: number; meters: number }\n | { type: \"bounds\"; bounds: BoundingBox }\n | { type: \"hash\"; value: string }\n | { type: \"geojson\"; value: JsonValue }\n | { type: \"tile\"; x: number; y: number; z: number }\n | { type: \"quadkey\"; value: string }\n | {\n type: \"sector\";\n lat: number;\n lon: number;\n meters: number;\n bearing1: number;\n bearing2: number;\n }\n | { type: \"reference\"; collection: string; id: string };\n\n/** Sort direction for query results. */\nexport type SortOrder = \"asc\" | \"desc\";\n\n/** Query output format. */\nexport type OutputFormat =\n | \"objects\"\n | \"points\"\n | \"bounds\"\n | \"ids\"\n | \"count\"\n | { hashes: { precision: number } };\n\n/** Numeric or textual field comparison. */\nexport type WhereComparison =\n | { type: \"range\"; min: number; max: number }\n | { type: \"equalsText\"; value: string }\n | { type: \"regex\"; value: string };\n\n/** Field-level filter used by search queries. */\nexport interface WhereFilter {\n /** Field name to inspect. */\n field: string;\n /** Comparison to apply. */\n comparison: WhereComparison;\n}\n\n/** Inclusion filter used by search queries. */\nexport interface WhereInFilter {\n /** Field name to inspect. */\n field: string;\n /** Accepted string values. */\n values: string[];\n}\n\n/** Expression filter used by search queries. */\nexport interface WhereExprFilter {\n /** Server-side expression string. */\n expression: string;\n}\n\n/** Shared options accepted by scan/search/spatial query methods. */\nexport interface SearchOptions {\n /** Cursor to resume a paginated query. */\n cursor?: number;\n /** Maximum number of results to return. */\n limit?: number;\n /** Omit fields from result items when true. */\n nofields?: boolean;\n /** Match pattern applied to object IDs. */\n matchPattern?: string;\n /** Result sort direction. */\n sort?: SortOrder;\n /** Numeric/text filters. */\n whereFilters?: WhereFilter[];\n /** Inclusion filters. */\n whereInFilters?: WhereInFilter[];\n /** Expression filters. */\n whereExprFilters?: WhereExprFilter[];\n /** Clip geometries to the query area when supported. */\n clip?: boolean;\n /** Output format for result items. */\n output?: OutputFormat;\n}\n\n/** Nearby query request. */\nexport interface NearbyQuery {\n /** Center latitude. */\n lat: number;\n /** Center longitude. */\n lon: number;\n /** Search radius in meters. */\n meters: number;\n /** Optional query controls. */\n options?: SearchOptions;\n}\n\n/** Area-based query request shared by `within` and `intersects`. */\nexport interface AreaQuery {\n /** Area to test. */\n area: Area;\n /** Optional query controls. */\n options?: SearchOptions;\n}\n\n/** Query result item. */\nexport interface SearchItem {\n /** Object identifier. */\n id: string;\n /** Object payload when requested by output options. */\n object?: GeoObject;\n /** Field map unless omitted by query options. */\n fields?: FieldMap;\n /** Distance from query center for nearby queries. */\n distance_meters: number | null;\n}\n\n/** Query results returned by scan/search/spatial queries. */\nexport interface SearchResults {\n /** Result objects. */\n results: SearchItem[];\n /** Cursor for the next page. */\n cursor: number;\n /** Number of returned items. */\n count: number;\n}\n\n/** Collection statistics. */\nexport interface CollectionStats {\n /** Collection name. */\n name: string;\n /** Number of live objects. */\n object_count: number;\n /** Number of point objects. */\n point_count: number;\n /** Number of string objects. */\n string_count: number;\n /** Number of objects with expiration metadata. */\n expires_count: number;\n}\n\n/** Collection metadata returned by `collectionInfo`. */\nexport interface CollectionInfo {\n /** Collection name. */\n name: string;\n /** Spatial bounds, if the collection contains spatial objects. */\n bounds: BoundingBox | null;\n /** Collection statistics. */\n stats: CollectionStats;\n}\n\n/** Engine metadata returned by `serverInfo`. */\nexport interface ServerInfo {\n /** Product version. */\n version: string;\n /** Public API version. */\n api_version: string;\n /** Protocol version used by native transports. */\n protocol_version: string;\n /** Storage format version. */\n storage_format_version: string;\n /** Number of collections. */\n num_collections: number;\n /** Number of live objects. */\n num_objects: number;\n /** Number of live point objects. */\n num_points: number;\n /** Approximate heap usage in bytes. */\n heap_bytes: number;\n /** Whether writes are disabled. */\n read_only: boolean;\n /** Whether the engine is acting as leader. */\n leader: boolean;\n /** Current storage sequence. */\n last_sequence: number;\n}\n\n/** Object upsert options. */\nexport interface SetObjectOptions {\n /** Field values to store alongside the object. */\n fields?: FieldMap | FieldEntry[];\n /** Optional object TTL in seconds. */\n expireSeconds?: number;\n /** Conditional write mode. */\n condition?: \"always\" | \"nx\" | \"xx\";\n}\n\n/** Mutation command names used by geofence definitions and events. */\nexport type MutationCommand = \"set\" | \"del\" | \"drop\" | \"fset\";\n\n/** Geofence detection mode. */\nexport type DetectType =\n | \"inside\"\n | \"outside\"\n | \"enter\"\n | \"exit\"\n | \"cross\"\n | \"roam\";\n\n/** Geofence query definition. */\nexport type GeofenceQuery =\n | { type: \"nearby\"; lat: number; lon: number; meters: number; options?: SearchOptions }\n | { type: \"within\"; area: Area; options?: SearchOptions }\n | { type: \"intersects\"; area: Area; options?: SearchOptions }\n | {\n type: \"roam\";\n targetCollection: string;\n targetPattern: string;\n meters: number;\n options?: SearchOptions;\n nodwell?: boolean;\n };\n\n/** Geofence hook definition. */\nexport interface GeofenceDef {\n /** Target collection evaluated by the hook. */\n collection: string;\n /** Query used by the hook. */\n query: GeofenceQuery;\n /** Detection modes emitted by the hook. */\n detect: DetectType[];\n /** Mutation commands that trigger the hook. */\n commands: MutationCommand[];\n}\n\n/** Hook summary. */\nexport interface HookInfo {\n /** Hook name. */\n name: string;\n /** Internal browser event endpoint. */\n endpoint: string;\n /** Target collection. */\n collection: string;\n}\n\n/** Full hook definition. */\nexport interface HookDef {\n /** Hook name. */\n name: string;\n /** Internal browser event endpoint. */\n endpoint: string;\n /** Geofence definition. */\n def: GeofenceDef;\n}\n\n/** Roaming metadata attached to roam events. */\nexport interface RoamingInfo {\n /** Target collection. */\n collection: string;\n /** Target object ID. */\n id: string;\n /** Roam distance in meters. */\n meters: number;\n}\n\n/** Geofence event emitted by browser hooks. */\nexport interface GeofenceEvent {\n /** Mutation command that triggered the event. */\n command: MutationCommand;\n /** Detection mode that matched. */\n detect: DetectType;\n /** Collection containing the changed object. */\n collection: string;\n /** Object ID. */\n id: string;\n /** Object payload at event time. */\n object: GeoObject;\n /** Field map at event time. */\n fields: FieldMap;\n /** Event timestamp in nanoseconds. */\n timestamp_ns: number;\n /** Stable opaque event identifier when available. */\n event_id?: string | null;\n /** Browser hook name when available. */\n hook?: string | null;\n /** Roaming group when available. */\n group?: string | null;\n /** Roaming metadata when available. */\n nearby?: RoamingInfo | null;\n}\n\n/** Client event emitted for object and collection mutations. */\nexport interface MutationEvent {\n /** Event type. */\n type:\n | \"collection:create\"\n | \"collection:drop\"\n | \"object:set\"\n | \"object:delete\"\n | \"object:expire\"\n | \"object:persist\"\n | \"hook:set\"\n | \"hook:delete\";\n /** Collection name, when applicable. */\n collection?: string;\n /** Object ID, when applicable. */\n id?: string;\n /** Hook name, when applicable. */\n hook?: string;\n /** Whether the mutation changed state. */\n changed?: boolean;\n}\n\n/** Event map used by `LatLngWasmClient.addEventListener`. */\nexport interface LatLngWasmEventMap {\n /** Any object, collection, or hook mutation. */\n mutation: CustomEvent<MutationEvent>;\n /** Any browser geofence hook event. */\n geofence: CustomEvent<GeofenceEvent>;\n /** Inside geofence event. */\n \"geofence:inside\": CustomEvent<GeofenceEvent>;\n /** Outside geofence event. */\n \"geofence:outside\": CustomEvent<GeofenceEvent>;\n /** Enter geofence event. */\n \"geofence:enter\": CustomEvent<GeofenceEvent>;\n /** Exit geofence event. */\n \"geofence:exit\": CustomEvent<GeofenceEvent>;\n /** Cross geofence event. */\n \"geofence:cross\": CustomEvent<GeofenceEvent>;\n /** Roam geofence event. */\n \"geofence:roam\": CustomEvent<GeofenceEvent>;\n}\n\nexport function toWireSetObjectRequest(\n object: GeoObject,\n options: SetObjectOptions | undefined,\n): unknown {\n return {\n object: toWireGeoObject(object),\n fields: toWireFieldEntries(options?.fields),\n expire_seconds: options?.expireSeconds ?? null,\n condition: toWireSetCondition(options?.condition),\n };\n}\n\nexport function toWireNearbyQuery(query: NearbyQuery): unknown {\n return {\n lat: query.lat,\n lon: query.lon,\n meters: query.meters,\n options: toWireSearchOptions(query.options),\n };\n}\n\nexport function toWireAreaQuery(query: AreaQuery): unknown {\n return {\n area: toWireArea(query.area),\n options: toWireSearchOptions(query.options),\n };\n}\n\nexport function toWireSearchOptions(options: SearchOptions | undefined): unknown {\n const value = options ?? {};\n return {\n cursor: value.cursor ?? 0,\n limit: value.limit ?? 100,\n nofields: value.nofields ?? false,\n match_pattern: value.matchPattern ?? null,\n sort: value.sort === \"desc\" ? \"Desc\" : \"Asc\",\n where_filters: (value.whereFilters ?? []).map((filter) => ({\n field: filter.field,\n comparison: toWireWhereComparison(filter.comparison),\n })),\n where_in_filters: value.whereInFilters ?? [],\n where_expr_filters: value.whereExprFilters ?? [],\n clip: value.clip ?? false,\n output: toWireOutputFormat(value.output),\n };\n}\n\nexport function toWireGeofenceDef(value: GeofenceDef): unknown {\n return {\n collection: value.collection,\n query: toWireGeofenceQuery(value.query),\n detect: value.detect.map(toWireDetectType),\n commands: value.commands.map(toWireMutationCommand),\n };\n}\n\nexport function fromWireObject(value: unknown): LatLngObject | null {\n if (value === null || value === undefined) {\n return null;\n }\n assertRecord(value, \"object response\");\n return {\n id: expectString(value.id, \"object id\"),\n geo: fromWireGeoObject(value.geo),\n fields: fromWireFieldMap(value.fields),\n expires_at: typeof value.expires_at === \"number\" ? value.expires_at : null,\n };\n}\n\nexport function fromWireSearchResults(value: unknown): SearchResults {\n assertRecord(value, \"search results\");\n if (!Array.isArray(value.results)) {\n throw new Error(\"search results must include results array\");\n }\n return {\n results: value.results.map((entry) => {\n assertRecord(entry, \"search result item\");\n return {\n id: expectString(entry.id, \"result id\"),\n object:\n entry.object === null || entry.object === undefined\n ? undefined\n : fromWireGeoObject(entry.object),\n fields:\n entry.fields === null || entry.fields === undefined\n ? undefined\n : fromWireFieldMap(entry.fields),\n distance_meters:\n typeof entry.distance_meters === \"number\" ? entry.distance_meters : null,\n };\n }),\n cursor: Number(value.cursor ?? 0),\n count: Number(value.count ?? 0),\n };\n}\n\nexport function fromWireGeofenceEvent(value: unknown): GeofenceEvent {\n assertRecord(value, \"geofence event\");\n return {\n command: fromWireMutationCommand(value.command),\n detect: fromWireDetectType(value.detect),\n collection: expectString(value.collection, \"event collection\"),\n id: expectString(value.id, \"event id\"),\n object: fromWireGeoObject(value.object),\n fields: fromWireFieldMap(value.fields),\n timestamp_ns:\n typeof value.timestamp_ns === \"number\"\n ? value.timestamp_ns\n : Number(value.timestamp_ns ?? 0),\n event_id: typeof value.event_id === \"string\" ? value.event_id : null,\n hook: typeof value.hook === \"string\" ? value.hook : null,\n group: typeof value.group === \"string\" ? value.group : null,\n nearby:\n isRecord(value.nearby) &&\n typeof value.nearby.collection === \"string\" &&\n typeof value.nearby.id === \"string\" &&\n typeof value.nearby.meters === \"number\"\n ? {\n collection: value.nearby.collection,\n id: value.nearby.id,\n meters: value.nearby.meters,\n }\n : null,\n };\n}\n\nexport function fromWireHookDef(value: unknown): HookDef | null {\n if (value === null || value === undefined) {\n return null;\n }\n assertRecord(value, \"hook definition\");\n return {\n name: expectString(value.name, \"hook name\"),\n endpoint: expectString(value.endpoint, \"hook endpoint\"),\n def: fromWireGeofenceDef(value.def),\n };\n}\n\nfunction toWireFieldEntries(fields: FieldMap | FieldEntry[] | undefined): unknown[] {\n if (!fields) {\n return [];\n }\n const entries = Array.isArray(fields)\n ? fields\n : Object.entries(fields).map(([name, value]) => ({ name, value }));\n return entries.map((entry) => ({\n name: entry.name,\n value: toWireFieldValue(entry.value),\n }));\n}\n\nfunction toWireFieldValue(value: FieldValue): unknown {\n switch (value.type) {\n case \"number\":\n return { type: \"number\", value: value.value };\n case \"text\":\n return { type: \"text\", value: value.value };\n case \"json\":\n return { type: \"json\", value: JSON.stringify(value.value) };\n }\n}\n\nfunction fromWireFieldValue(value: unknown): FieldValue {\n assertRecord(value, \"field value\");\n if (value.type === \"number\") {\n return { type: \"number\", value: Number(value.value) };\n }\n if (value.type === \"text\") {\n return { type: \"text\", value: String(value.value) };\n }\n if (value.type === \"json\") {\n const raw = String(value.value);\n try {\n return { type: \"json\", value: JSON.parse(raw) as JsonValue };\n } catch {\n return { type: \"json\", value: raw };\n }\n }\n throw new Error(\"unknown field value shape\");\n}\n\nfunction fromWireFieldMap(value: unknown): FieldMap {\n if (!isRecord(value) || !isRecord(value.values)) {\n return {};\n }\n return Object.fromEntries(\n Object.entries(value.values).map(([name, fieldValue]) => [\n name,\n fromWireFieldValue(fieldValue),\n ]),\n );\n}\n\nfunction toWireGeoObject(value: GeoObject): unknown {\n switch (value.type) {\n case \"point\":\n return { Point: { lat: value.lat, lon: value.lon, z: value.z ?? null } };\n case \"bounds\":\n return { Bounds: value.bounds };\n case \"hash\":\n return { Hash: value.value };\n case \"geojson\":\n return { GeoJson: value.value };\n case \"string\":\n return { String: value.value };\n }\n}\n\nfunction fromWireGeoObject(value: unknown): GeoObject {\n assertRecord(value, \"geo object\");\n if (\"Point\" in value) {\n const point = value.Point;\n assertRecord(point, \"point\");\n return {\n type: \"point\",\n lat: Number(point.lat),\n lon: Number(point.lon),\n z: typeof point.z === \"number\" || point.z === null ? point.z : undefined,\n };\n }\n if (\"Bounds\" in value) {\n return { type: \"bounds\", bounds: value.Bounds as BoundingBox };\n }\n if (\"Hash\" in value) {\n return { type: \"hash\", value: String(value.Hash) };\n }\n if (\"GeoJson\" in value) {\n return { type: \"geojson\", value: value.GeoJson as JsonValue };\n }\n if (\"String\" in value) {\n return { type: \"string\", value: String(value.String) };\n }\n throw new Error(\"unknown geo object shape\");\n}\n\nfunction toWireArea(area: Area): unknown {\n switch (area.type) {\n case \"circle\":\n return { Circle: { lat: area.lat, lon: area.lon, meters: area.meters } };\n case \"bounds\":\n return { Bounds: area.bounds };\n case \"hash\":\n return { Hash: area.value };\n case \"geojson\":\n return { GeoJson: area.value };\n case \"tile\":\n return { Tile: { x: area.x, y: area.y, z: area.z } };\n case \"quadkey\":\n return { Quadkey: area.value };\n case \"sector\":\n return {\n Sector: {\n lat: area.lat,\n lon: area.lon,\n meters: area.meters,\n bearing1: area.bearing1,\n bearing2: area.bearing2,\n },\n };\n case \"reference\":\n return { Reference: { collection: area.collection, id: area.id } };\n }\n}\n\nfunction toWireOutputFormat(value: OutputFormat | undefined): unknown {\n if (!value || value === \"objects\") {\n return \"Objects\";\n }\n if (value === \"points\") {\n return \"Points\";\n }\n if (value === \"bounds\") {\n return \"Bounds\";\n }\n if (value === \"ids\") {\n return \"Ids\";\n }\n if (value === \"count\") {\n return \"Count\";\n }\n return { Hashes: { precision: value.hashes.precision } };\n}\n\nfunction toWireWhereComparison(value: WhereComparison): unknown {\n switch (value.type) {\n case \"range\":\n return { Range: { min: value.min, max: value.max } };\n case \"equalsText\":\n return { EqualsText: value.value };\n case \"regex\":\n return { Regex: value.value };\n }\n}\n\nfunction toWireGeofenceQuery(value: GeofenceQuery): unknown {\n switch (value.type) {\n case \"nearby\":\n return {\n Nearby: {\n lat: value.lat,\n lon: value.lon,\n meters: value.meters,\n options: toWireSearchOptions(value.options),\n },\n };\n case \"within\":\n return { Within: { area: toWireArea(value.area), options: toWireSearchOptions(value.options) } };\n case \"intersects\":\n return {\n Intersects: {\n area: toWireArea(value.area),\n options: toWireSearchOptions(value.options),\n },\n };\n case \"roam\":\n return {\n Roam: {\n target_collection: value.targetCollection,\n target_pattern: value.targetPattern,\n meters: value.meters,\n options: toWireSearchOptions(value.options),\n nodwell: value.nodwell ?? false,\n },\n };\n }\n}\n\nfunction fromWireGeofenceDef(value: unknown): GeofenceDef {\n assertRecord(value, \"geofence definition\");\n const detect = value.detect;\n const commands = value.commands;\n if (!Array.isArray(detect) || !Array.isArray(commands)) {\n throw new Error(\"geofence detect and commands must be arrays\");\n }\n return {\n collection: expectString(value.collection, \"geofence collection\"),\n query: fromWireGeofenceQuery(value.query),\n detect: detect.map(fromWireDetectType),\n commands: commands.map(fromWireMutationCommand),\n };\n}\n\nfunction fromWireGeofenceQuery(value: unknown): GeofenceQuery {\n assertRecord(value, \"geofence query\");\n if (\"Nearby\" in value) {\n const nearby = value.Nearby;\n assertRecord(nearby, \"nearby query\");\n return {\n type: \"nearby\",\n lat: Number(nearby.lat),\n lon: Number(nearby.lon),\n meters: Number(nearby.meters),\n options: fromWireSearchOptions(nearby.options),\n };\n }\n if (\"Within\" in value) {\n const within = value.Within;\n assertRecord(within, \"within query\");\n return {\n type: \"within\",\n area: fromWireArea(within.area),\n options: fromWireSearchOptions(within.options),\n };\n }\n if (\"Intersects\" in value) {\n const intersects = value.Intersects;\n assertRecord(intersects, \"intersects query\");\n return {\n type: \"intersects\",\n area: fromWireArea(intersects.area),\n options: fromWireSearchOptions(intersects.options),\n };\n }\n if (\"Roam\" in value) {\n const roam = value.Roam;\n assertRecord(roam, \"roam query\");\n return {\n type: \"roam\",\n targetCollection: expectString(roam.target_collection, \"roam target collection\"),\n targetPattern: expectString(roam.target_pattern, \"roam target pattern\"),\n meters: Number(roam.meters),\n options: fromWireSearchOptions(roam.options),\n nodwell: typeof roam.nodwell === \"boolean\" ? roam.nodwell : undefined,\n };\n }\n throw new Error(\"unknown geofence query shape\");\n}\n\nfunction fromWireArea(value: unknown): Area {\n assertRecord(value, \"area\");\n if (\"Circle\" in value) {\n const circle = value.Circle;\n assertRecord(circle, \"circle area\");\n return {\n type: \"circle\",\n lat: Number(circle.lat),\n lon: Number(circle.lon),\n meters: Number(circle.meters),\n };\n }\n if (\"Bounds\" in value) {\n return { type: \"bounds\", bounds: value.Bounds as BoundingBox };\n }\n if (\"Hash\" in value) {\n return { type: \"hash\", value: String(value.Hash) };\n }\n if (\"GeoJson\" in value) {\n return { type: \"geojson\", value: value.GeoJson as JsonValue };\n }\n if (\"Tile\" in value) {\n const tile = value.Tile;\n assertRecord(tile, \"tile area\");\n return { type: \"tile\", x: Number(tile.x), y: Number(tile.y), z: Number(tile.z) };\n }\n if (\"Quadkey\" in value) {\n return { type: \"quadkey\", value: String(value.Quadkey) };\n }\n if (\"Sector\" in value) {\n const sector = value.Sector;\n assertRecord(sector, \"sector area\");\n return {\n type: \"sector\",\n lat: Number(sector.lat),\n lon: Number(sector.lon),\n meters: Number(sector.meters),\n bearing1: Number(sector.bearing1),\n bearing2: Number(sector.bearing2),\n };\n }\n if (\"Reference\" in value) {\n const reference = value.Reference;\n assertRecord(reference, \"reference area\");\n return {\n type: \"reference\",\n collection: expectString(reference.collection, \"reference collection\"),\n id: expectString(reference.id, \"reference id\"),\n };\n }\n throw new Error(\"unknown area shape\");\n}\n\nfunction fromWireSearchOptions(value: unknown): SearchOptions | undefined {\n if (!isRecord(value)) {\n return undefined;\n }\n return {\n cursor: typeof value.cursor === \"number\" ? value.cursor : undefined,\n limit: typeof value.limit === \"number\" ? value.limit : undefined,\n nofields: typeof value.nofields === \"boolean\" ? value.nofields : undefined,\n matchPattern:\n typeof value.match_pattern === \"string\" ? value.match_pattern : undefined,\n sort: value.sort === \"Desc\" ? \"desc\" : value.sort === \"Asc\" ? \"asc\" : undefined,\n clip: typeof value.clip === \"boolean\" ? value.clip : undefined,\n };\n}\n\nfunction toWireSetCondition(value: SetObjectOptions[\"condition\"] | undefined): unknown {\n switch (value) {\n case \"nx\":\n return \"Nx\";\n case \"xx\":\n return \"Xx\";\n case \"always\":\n case undefined:\n return \"Always\";\n }\n}\n\nfunction toWireMutationCommand(value: MutationCommand): string {\n switch (value) {\n case \"set\":\n return \"Set\";\n case \"del\":\n return \"Del\";\n case \"drop\":\n return \"Drop\";\n case \"fset\":\n return \"Fset\";\n }\n}\n\nfunction fromWireMutationCommand(value: unknown): MutationCommand {\n switch (value) {\n case \"Set\":\n case \"set\":\n return \"set\";\n case \"Del\":\n case \"del\":\n return \"del\";\n case \"Drop\":\n case \"drop\":\n return \"drop\";\n case \"Fset\":\n case \"fset\":\n return \"fset\";\n default:\n throw new Error(`unknown mutation command: ${String(value)}`);\n }\n}\n\nfunction toWireDetectType(value: DetectType): string {\n switch (value) {\n case \"inside\":\n return \"Inside\";\n case \"outside\":\n return \"Outside\";\n case \"enter\":\n return \"Enter\";\n case \"exit\":\n return \"Exit\";\n case \"cross\":\n return \"Cross\";\n case \"roam\":\n return \"Roam\";\n }\n}\n\nfunction fromWireDetectType(value: unknown): DetectType {\n switch (value) {\n case \"Inside\":\n case \"inside\":\n return \"inside\";\n case \"Outside\":\n case \"outside\":\n return \"outside\";\n case \"Enter\":\n case \"enter\":\n return \"enter\";\n case \"Exit\":\n case \"exit\":\n return \"exit\";\n case \"Cross\":\n case \"cross\":\n return \"cross\";\n case \"Roam\":\n case \"roam\":\n return \"roam\";\n default:\n throw new Error(`unknown detect type: ${String(value)}`);\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction assertRecord(value: unknown, label: string): asserts value is Record<string, unknown> {\n if (!isRecord(value)) {\n throw new Error(`${label} must be an object`);\n }\n}\n\nfunction expectString(value: unknown, label: string): string {\n if (typeof value !== \"string\") {\n throw new Error(`${label} must be a string`);\n }\n return value;\n}\n","import init, { BrowserLatLng } from \"../pkg/latlng_core.js\";\nimport type {\n WasmMutationResponse,\n WorkerOutboundMessage,\n WorkerRequest,\n} from \"./messages.js\";\nimport { fromWireGeofenceEvent, type MutationEvent } from \"./types.js\";\n\nlet enginePromise: Promise<BrowserLatLng> | undefined;\nlet configuredWasmUrl: string | undefined;\n\nfunction engine(): Promise<BrowserLatLng> {\n const wasmUrl =\n configuredWasmUrl ??\n new URL([\"..\", \"wasm\", \"latlng_core_bg.wasm\"].join(\"/\"), import.meta.url);\n enginePromise ??= init(wasmUrl).then(() => new BrowserLatLng());\n return enginePromise;\n}\n\nself.addEventListener(\"message\", (message: MessageEvent<WorkerRequest>) => {\n void handleRequest(message.data);\n});\n\nasync function handleRequest(request: WorkerRequest): Promise<void> {\n try {\n if (request.method === \"init\") {\n const result = await initialize(request.params);\n post({ id: request.id, ok: true, result });\n return;\n }\n const db = await engine();\n const result = await dispatch(db, request.method, request.params);\n post({ id: request.id, ok: true, result });\n } catch (error) {\n post({\n id: request.id,\n ok: false,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function initialize(params: unknown[]): Promise<unknown> {\n const [wasmUrl] = expectParams<[string | null]>(params);\n if (!enginePromise && typeof wasmUrl === \"string\" && wasmUrl.length > 0) {\n configuredWasmUrl = wasmUrl;\n }\n return (await engine()).server_info();\n}\n\nasync function dispatch(\n db: BrowserLatLng,\n method: WorkerRequest[\"method\"],\n params: unknown[],\n): Promise<unknown> {\n switch (method) {\n case \"init\":\n return initialize(params);\n case \"createCollection\": {\n const [collection] = expectParams<[string]>(params);\n const response = db.create_collection(collection) as WasmMutationResponse<boolean>;\n emitMutation({\n type: \"collection:create\",\n collection,\n changed: response.result,\n });\n emitGeofences(response.events);\n return response.result;\n }\n case \"dropCollection\": {\n const [collection] = expectParams<[string]>(params);\n const response = db.drop_collection(collection) as WasmMutationResponse<boolean>;\n emitMutation({\n type: \"collection:drop\",\n collection,\n changed: response.result,\n });\n emitGeofences(response.events);\n return response.result;\n }\n case \"collections\": {\n const [pattern] = expectParams<[string | null]>(params);\n return db.collections(pattern);\n }\n case \"collectionInfo\": {\n const [collection] = expectParams<[string]>(params);\n return db.collection_info(collection);\n }\n case \"setObject\": {\n const [collection, id, payload] = expectParams<[string, string, unknown]>(params);\n const response = db.set_object(\n collection,\n id,\n payload,\n ) as WasmMutationResponse<boolean>;\n emitMutation({\n type: \"object:set\",\n collection,\n id,\n changed: response.result,\n });\n emitGeofences(response.events);\n return response.result;\n }\n case \"getObject\": {\n const [collection, id, withFields] = expectParams<[string, string, boolean]>(params);\n return db.get_object(collection, id, withFields);\n }\n case \"deleteObject\": {\n const [collection, id] = expectParams<[string, string]>(params);\n const response = db.delete_object(\n collection,\n id,\n ) as WasmMutationResponse<boolean>;\n emitMutation({\n type: \"object:delete\",\n collection,\n id,\n changed: response.result,\n });\n emitGeofences(response.events);\n return response.result;\n }\n case \"expire\": {\n const [collection, id, seconds] = expectParams<[string, string, number]>(params);\n const response = db.expire(collection, id, seconds) as WasmMutationResponse<boolean>;\n emitMutation({ type: \"object:expire\", collection, id, changed: response.result });\n return response.result;\n }\n case \"persist\": {\n const [collection, id] = expectParams<[string, string]>(params);\n const response = db.persist(collection, id) as WasmMutationResponse<boolean>;\n emitMutation({ type: \"object:persist\", collection, id, changed: response.result });\n return response.result;\n }\n case \"ttl\": {\n const [collection, id] = expectParams<[string, string]>(params);\n return db.ttl(collection, id);\n }\n case \"setHook\": {\n const [name, def] = expectParams<[string, unknown]>(params);\n db.set_hook(name, def);\n emitMutation({ type: \"hook:set\", hook: name, changed: true });\n return true;\n }\n case \"deleteHook\": {\n const [name] = expectParams<[string]>(params);\n const deleted = db.delete_hook(name);\n emitMutation({ type: \"hook:delete\", hook: name, changed: deleted });\n return deleted;\n }\n case \"hooks\": {\n const [pattern] = expectParams<[string | null]>(params);\n return db.hooks(pattern);\n }\n case \"getHook\": {\n const [name] = expectParams<[string]>(params);\n return db.hook(name);\n }\n case \"nearby\": {\n const [collection, query] = expectParams<[string, unknown]>(params);\n return db.nearby_query(collection, query);\n }\n case \"within\": {\n const [collection, query] = expectParams<[string, unknown]>(params);\n return db.within_query(collection, query);\n }\n case \"intersects\": {\n const [collection, query] = expectParams<[string, unknown]>(params);\n return db.intersects_query(collection, query);\n }\n case \"scan\": {\n const [collection, options] = expectParams<[string, unknown]>(params);\n return db.scan(collection, options);\n }\n case \"search\": {\n const [collection, options] = expectParams<[string, unknown]>(params);\n return db.search(collection, options);\n }\n case \"bounds\": {\n const [collection] = expectParams<[string]>(params);\n return db.bounds(collection);\n }\n case \"stats\": {\n const [collections] = expectParams<[string[]]>(params);\n return db.stats(collections);\n }\n case \"serverInfo\":\n return db.server_info();\n }\n}\n\nfunction emitMutation(event: MutationEvent): void {\n post({ type: \"event\", eventType: \"mutation\", event });\n}\n\nfunction emitGeofences(events: unknown[]): void {\n for (const event of events) {\n post({\n type: \"event\",\n eventType: \"geofence\",\n event: fromWireGeofenceEvent(event),\n });\n }\n}\n\nfunction post(message: WorkerOutboundMessage): void {\n self.postMessage(message);\n}\n\nfunction expectParams<T extends unknown[]>(params: unknown[]): T {\n return params as T;\n}\n"],"mappings":"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"}
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.worker.d.ts","sourceRoot":"","sources":["../src/engine.worker.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvF,YAAY,EACV,IAAI,EACJ,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["#worker","#target","#pending","#ready","#handleMessage","#handleError","#request","#closed","#nextId","#resolveResponse"],"sources":["../src/types.ts","../src/client.ts"],"sourcesContent":["/** JSON value accepted by GeoJSON payloads and field values. */\nexport type JsonValue =\n | null\n | boolean\n | number\n | string\n | JsonValue[]\n | { [key: string]: JsonValue };\n\n/** Geographic bounding box expressed as min/max latitude and longitude. */\nexport interface BoundingBox {\n /** Southern latitude bound. */\n min_lat: number;\n /** Western longitude bound. */\n min_lon: number;\n /** Northern latitude bound. */\n max_lat: number;\n /** Eastern longitude bound. */\n max_lon: number;\n}\n\n/** Stored field value. */\nexport type FieldValue =\n | { type: \"number\"; value: number }\n | { type: \"text\"; value: string }\n | { type: \"json\"; value: JsonValue };\n\n/** Named field assignment. */\nexport interface FieldEntry {\n /** Field name. */\n name: string;\n /** Field value. */\n value: FieldValue;\n}\n\n/** Field map keyed by field name. */\nexport type FieldMap = Record<string, FieldValue>;\n\n/** Geographic object payload accepted by `setObject`. */\nexport type GeoObject =\n | { type: \"point\"; lat: number; lon: number; z?: number | null }\n | { type: \"bounds\"; bounds: BoundingBox }\n | { type: \"hash\"; value: string }\n | { type: \"geojson\"; value: JsonValue }\n | { type: \"string\"; value: string };\n\n/** Stored object returned by read and query operations. */\nexport interface LatLngObject {\n /** Object identifier. */\n id: string;\n /** Stored object payload. */\n geo: GeoObject;\n /** Stored field values. */\n fields: FieldMap;\n /** Expiration timestamp in milliseconds since epoch, or `null`. */\n expires_at: number | null;\n}\n\n/** Area definition used by spatial queries and geofence definitions. */\nexport type Area =\n | { type: \"circle\"; lat: number; lon: number; meters: number }\n | { type: \"bounds\"; bounds: BoundingBox }\n | { type: \"hash\"; value: string }\n | { type: \"geojson\"; value: JsonValue }\n | { type: \"tile\"; x: number; y: number; z: number }\n | { type: \"quadkey\"; value: string }\n | {\n type: \"sector\";\n lat: number;\n lon: number;\n meters: number;\n bearing1: number;\n bearing2: number;\n }\n | { type: \"reference\"; collection: string; id: string };\n\n/** Sort direction for query results. */\nexport type SortOrder = \"asc\" | \"desc\";\n\n/** Query output format. */\nexport type OutputFormat =\n | \"objects\"\n | \"points\"\n | \"bounds\"\n | \"ids\"\n | \"count\"\n | { hashes: { precision: number } };\n\n/** Numeric or textual field comparison. */\nexport type WhereComparison =\n | { type: \"range\"; min: number; max: number }\n | { type: \"equalsText\"; value: string }\n | { type: \"regex\"; value: string };\n\n/** Field-level filter used by search queries. */\nexport interface WhereFilter {\n /** Field name to inspect. */\n field: string;\n /** Comparison to apply. */\n comparison: WhereComparison;\n}\n\n/** Inclusion filter used by search queries. */\nexport interface WhereInFilter {\n /** Field name to inspect. */\n field: string;\n /** Accepted string values. */\n values: string[];\n}\n\n/** Expression filter used by search queries. */\nexport interface WhereExprFilter {\n /** Server-side expression string. */\n expression: string;\n}\n\n/** Shared options accepted by scan/search/spatial query methods. */\nexport interface SearchOptions {\n /** Cursor to resume a paginated query. */\n cursor?: number;\n /** Maximum number of results to return. */\n limit?: number;\n /** Omit fields from result items when true. */\n nofields?: boolean;\n /** Match pattern applied to object IDs. */\n matchPattern?: string;\n /** Result sort direction. */\n sort?: SortOrder;\n /** Numeric/text filters. */\n whereFilters?: WhereFilter[];\n /** Inclusion filters. */\n whereInFilters?: WhereInFilter[];\n /** Expression filters. */\n whereExprFilters?: WhereExprFilter[];\n /** Clip geometries to the query area when supported. */\n clip?: boolean;\n /** Output format for result items. */\n output?: OutputFormat;\n}\n\n/** Nearby query request. */\nexport interface NearbyQuery {\n /** Center latitude. */\n lat: number;\n /** Center longitude. */\n lon: number;\n /** Search radius in meters. */\n meters: number;\n /** Optional query controls. */\n options?: SearchOptions;\n}\n\n/** Area-based query request shared by `within` and `intersects`. */\nexport interface AreaQuery {\n /** Area to test. */\n area: Area;\n /** Optional query controls. */\n options?: SearchOptions;\n}\n\n/** Query result item. */\nexport interface SearchItem {\n /** Object identifier. */\n id: string;\n /** Object payload when requested by output options. */\n object?: GeoObject;\n /** Field map unless omitted by query options. */\n fields?: FieldMap;\n /** Distance from query center for nearby queries. */\n distance_meters: number | null;\n}\n\n/** Query results returned by scan/search/spatial queries. */\nexport interface SearchResults {\n /** Result objects. */\n results: SearchItem[];\n /** Cursor for the next page. */\n cursor: number;\n /** Number of returned items. */\n count: number;\n}\n\n/** Collection statistics. */\nexport interface CollectionStats {\n /** Collection name. */\n name: string;\n /** Number of live objects. */\n object_count: number;\n /** Number of point objects. */\n point_count: number;\n /** Number of string objects. */\n string_count: number;\n /** Number of objects with expiration metadata. */\n expires_count: number;\n}\n\n/** Collection metadata returned by `collectionInfo`. */\nexport interface CollectionInfo {\n /** Collection name. */\n name: string;\n /** Spatial bounds, if the collection contains spatial objects. */\n bounds: BoundingBox | null;\n /** Collection statistics. */\n stats: CollectionStats;\n}\n\n/** Engine metadata returned by `serverInfo`. */\nexport interface ServerInfo {\n /** Product version. */\n version: string;\n /** Public API version. */\n api_version: string;\n /** Protocol version used by native transports. */\n protocol_version: string;\n /** Storage format version. */\n storage_format_version: string;\n /** Number of collections. */\n num_collections: number;\n /** Number of live objects. */\n num_objects: number;\n /** Number of live point objects. */\n num_points: number;\n /** Approximate heap usage in bytes. */\n heap_bytes: number;\n /** Whether writes are disabled. */\n read_only: boolean;\n /** Whether the engine is acting as leader. */\n leader: boolean;\n /** Current storage sequence. */\n last_sequence: number;\n}\n\n/** Object upsert options. */\nexport interface SetObjectOptions {\n /** Field values to store alongside the object. */\n fields?: FieldMap | FieldEntry[];\n /** Optional object TTL in seconds. */\n expireSeconds?: number;\n /** Conditional write mode. */\n condition?: \"always\" | \"nx\" | \"xx\";\n}\n\n/** Mutation command names used by geofence definitions and events. */\nexport type MutationCommand = \"set\" | \"del\" | \"drop\" | \"fset\";\n\n/** Geofence detection mode. */\nexport type DetectType =\n | \"inside\"\n | \"outside\"\n | \"enter\"\n | \"exit\"\n | \"cross\"\n | \"roam\";\n\n/** Geofence query definition. */\nexport type GeofenceQuery =\n | { type: \"nearby\"; lat: number; lon: number; meters: number; options?: SearchOptions }\n | { type: \"within\"; area: Area; options?: SearchOptions }\n | { type: \"intersects\"; area: Area; options?: SearchOptions }\n | {\n type: \"roam\";\n targetCollection: string;\n targetPattern: string;\n meters: number;\n options?: SearchOptions;\n nodwell?: boolean;\n };\n\n/** Geofence hook definition. */\nexport interface GeofenceDef {\n /** Target collection evaluated by the hook. */\n collection: string;\n /** Query used by the hook. */\n query: GeofenceQuery;\n /** Detection modes emitted by the hook. */\n detect: DetectType[];\n /** Mutation commands that trigger the hook. */\n commands: MutationCommand[];\n}\n\n/** Hook summary. */\nexport interface HookInfo {\n /** Hook name. */\n name: string;\n /** Internal browser event endpoint. */\n endpoint: string;\n /** Target collection. */\n collection: string;\n}\n\n/** Full hook definition. */\nexport interface HookDef {\n /** Hook name. */\n name: string;\n /** Internal browser event endpoint. */\n endpoint: string;\n /** Geofence definition. */\n def: GeofenceDef;\n}\n\n/** Roaming metadata attached to roam events. */\nexport interface RoamingInfo {\n /** Target collection. */\n collection: string;\n /** Target object ID. */\n id: string;\n /** Roam distance in meters. */\n meters: number;\n}\n\n/** Geofence event emitted by browser hooks. */\nexport interface GeofenceEvent {\n /** Mutation command that triggered the event. */\n command: MutationCommand;\n /** Detection mode that matched. */\n detect: DetectType;\n /** Collection containing the changed object. */\n collection: string;\n /** Object ID. */\n id: string;\n /** Object payload at event time. */\n object: GeoObject;\n /** Field map at event time. */\n fields: FieldMap;\n /** Event timestamp in nanoseconds. */\n timestamp_ns: number;\n /** Stable opaque event identifier when available. */\n event_id?: string | null;\n /** Browser hook name when available. */\n hook?: string | null;\n /** Roaming group when available. */\n group?: string | null;\n /** Roaming metadata when available. */\n nearby?: RoamingInfo | null;\n}\n\n/** Client event emitted for object and collection mutations. */\nexport interface MutationEvent {\n /** Event type. */\n type:\n | \"collection:create\"\n | \"collection:drop\"\n | \"object:set\"\n | \"object:delete\"\n | \"object:expire\"\n | \"object:persist\"\n | \"hook:set\"\n | \"hook:delete\";\n /** Collection name, when applicable. */\n collection?: string;\n /** Object ID, when applicable. */\n id?: string;\n /** Hook name, when applicable. */\n hook?: string;\n /** Whether the mutation changed state. */\n changed?: boolean;\n}\n\n/** Event map used by `LatLngWasmClient.addEventListener`. */\nexport interface LatLngWasmEventMap {\n /** Any object, collection, or hook mutation. */\n mutation: CustomEvent<MutationEvent>;\n /** Any browser geofence hook event. */\n geofence: CustomEvent<GeofenceEvent>;\n /** Inside geofence event. */\n \"geofence:inside\": CustomEvent<GeofenceEvent>;\n /** Outside geofence event. */\n \"geofence:outside\": CustomEvent<GeofenceEvent>;\n /** Enter geofence event. */\n \"geofence:enter\": CustomEvent<GeofenceEvent>;\n /** Exit geofence event. */\n \"geofence:exit\": CustomEvent<GeofenceEvent>;\n /** Cross geofence event. */\n \"geofence:cross\": CustomEvent<GeofenceEvent>;\n /** Roam geofence event. */\n \"geofence:roam\": CustomEvent<GeofenceEvent>;\n}\n\nexport function toWireSetObjectRequest(\n object: GeoObject,\n options: SetObjectOptions | undefined,\n): unknown {\n return {\n object: toWireGeoObject(object),\n fields: toWireFieldEntries(options?.fields),\n expire_seconds: options?.expireSeconds ?? null,\n condition: toWireSetCondition(options?.condition),\n };\n}\n\nexport function toWireNearbyQuery(query: NearbyQuery): unknown {\n return {\n lat: query.lat,\n lon: query.lon,\n meters: query.meters,\n options: toWireSearchOptions(query.options),\n };\n}\n\nexport function toWireAreaQuery(query: AreaQuery): unknown {\n return {\n area: toWireArea(query.area),\n options: toWireSearchOptions(query.options),\n };\n}\n\nexport function toWireSearchOptions(options: SearchOptions | undefined): unknown {\n const value = options ?? {};\n return {\n cursor: value.cursor ?? 0,\n limit: value.limit ?? 100,\n nofields: value.nofields ?? false,\n match_pattern: value.matchPattern ?? null,\n sort: value.sort === \"desc\" ? \"Desc\" : \"Asc\",\n where_filters: (value.whereFilters ?? []).map((filter) => ({\n field: filter.field,\n comparison: toWireWhereComparison(filter.comparison),\n })),\n where_in_filters: value.whereInFilters ?? [],\n where_expr_filters: value.whereExprFilters ?? [],\n clip: value.clip ?? false,\n output: toWireOutputFormat(value.output),\n };\n}\n\nexport function toWireGeofenceDef(value: GeofenceDef): unknown {\n return {\n collection: value.collection,\n query: toWireGeofenceQuery(value.query),\n detect: value.detect.map(toWireDetectType),\n commands: value.commands.map(toWireMutationCommand),\n };\n}\n\nexport function fromWireObject(value: unknown): LatLngObject | null {\n if (value === null || value === undefined) {\n return null;\n }\n assertRecord(value, \"object response\");\n return {\n id: expectString(value.id, \"object id\"),\n geo: fromWireGeoObject(value.geo),\n fields: fromWireFieldMap(value.fields),\n expires_at: typeof value.expires_at === \"number\" ? value.expires_at : null,\n };\n}\n\nexport function fromWireSearchResults(value: unknown): SearchResults {\n assertRecord(value, \"search results\");\n if (!Array.isArray(value.results)) {\n throw new Error(\"search results must include results array\");\n }\n return {\n results: value.results.map((entry) => {\n assertRecord(entry, \"search result item\");\n return {\n id: expectString(entry.id, \"result id\"),\n object:\n entry.object === null || entry.object === undefined\n ? undefined\n : fromWireGeoObject(entry.object),\n fields:\n entry.fields === null || entry.fields === undefined\n ? undefined\n : fromWireFieldMap(entry.fields),\n distance_meters:\n typeof entry.distance_meters === \"number\" ? entry.distance_meters : null,\n };\n }),\n cursor: Number(value.cursor ?? 0),\n count: Number(value.count ?? 0),\n };\n}\n\nexport function fromWireGeofenceEvent(value: unknown): GeofenceEvent {\n assertRecord(value, \"geofence event\");\n return {\n command: fromWireMutationCommand(value.command),\n detect: fromWireDetectType(value.detect),\n collection: expectString(value.collection, \"event collection\"),\n id: expectString(value.id, \"event id\"),\n object: fromWireGeoObject(value.object),\n fields: fromWireFieldMap(value.fields),\n timestamp_ns:\n typeof value.timestamp_ns === \"number\"\n ? value.timestamp_ns\n : Number(value.timestamp_ns ?? 0),\n event_id: typeof value.event_id === \"string\" ? value.event_id : null,\n hook: typeof value.hook === \"string\" ? value.hook : null,\n group: typeof value.group === \"string\" ? value.group : null,\n nearby:\n isRecord(value.nearby) &&\n typeof value.nearby.collection === \"string\" &&\n typeof value.nearby.id === \"string\" &&\n typeof value.nearby.meters === \"number\"\n ? {\n collection: value.nearby.collection,\n id: value.nearby.id,\n meters: value.nearby.meters,\n }\n : null,\n };\n}\n\nexport function fromWireHookDef(value: unknown): HookDef | null {\n if (value === null || value === undefined) {\n return null;\n }\n assertRecord(value, \"hook definition\");\n return {\n name: expectString(value.name, \"hook name\"),\n endpoint: expectString(value.endpoint, \"hook endpoint\"),\n def: fromWireGeofenceDef(value.def),\n };\n}\n\nfunction toWireFieldEntries(fields: FieldMap | FieldEntry[] | undefined): unknown[] {\n if (!fields) {\n return [];\n }\n const entries = Array.isArray(fields)\n ? fields\n : Object.entries(fields).map(([name, value]) => ({ name, value }));\n return entries.map((entry) => ({\n name: entry.name,\n value: toWireFieldValue(entry.value),\n }));\n}\n\nfunction toWireFieldValue(value: FieldValue): unknown {\n switch (value.type) {\n case \"number\":\n return { type: \"number\", value: value.value };\n case \"text\":\n return { type: \"text\", value: value.value };\n case \"json\":\n return { type: \"json\", value: JSON.stringify(value.value) };\n }\n}\n\nfunction fromWireFieldValue(value: unknown): FieldValue {\n assertRecord(value, \"field value\");\n if (value.type === \"number\") {\n return { type: \"number\", value: Number(value.value) };\n }\n if (value.type === \"text\") {\n return { type: \"text\", value: String(value.value) };\n }\n if (value.type === \"json\") {\n const raw = String(value.value);\n try {\n return { type: \"json\", value: JSON.parse(raw) as JsonValue };\n } catch {\n return { type: \"json\", value: raw };\n }\n }\n throw new Error(\"unknown field value shape\");\n}\n\nfunction fromWireFieldMap(value: unknown): FieldMap {\n if (!isRecord(value) || !isRecord(value.values)) {\n return {};\n }\n return Object.fromEntries(\n Object.entries(value.values).map(([name, fieldValue]) => [\n name,\n fromWireFieldValue(fieldValue),\n ]),\n );\n}\n\nfunction toWireGeoObject(value: GeoObject): unknown {\n switch (value.type) {\n case \"point\":\n return { Point: { lat: value.lat, lon: value.lon, z: value.z ?? null } };\n case \"bounds\":\n return { Bounds: value.bounds };\n case \"hash\":\n return { Hash: value.value };\n case \"geojson\":\n return { GeoJson: value.value };\n case \"string\":\n return { String: value.value };\n }\n}\n\nfunction fromWireGeoObject(value: unknown): GeoObject {\n assertRecord(value, \"geo object\");\n if (\"Point\" in value) {\n const point = value.Point;\n assertRecord(point, \"point\");\n return {\n type: \"point\",\n lat: Number(point.lat),\n lon: Number(point.lon),\n z: typeof point.z === \"number\" || point.z === null ? point.z : undefined,\n };\n }\n if (\"Bounds\" in value) {\n return { type: \"bounds\", bounds: value.Bounds as BoundingBox };\n }\n if (\"Hash\" in value) {\n return { type: \"hash\", value: String(value.Hash) };\n }\n if (\"GeoJson\" in value) {\n return { type: \"geojson\", value: value.GeoJson as JsonValue };\n }\n if (\"String\" in value) {\n return { type: \"string\", value: String(value.String) };\n }\n throw new Error(\"unknown geo object shape\");\n}\n\nfunction toWireArea(area: Area): unknown {\n switch (area.type) {\n case \"circle\":\n return { Circle: { lat: area.lat, lon: area.lon, meters: area.meters } };\n case \"bounds\":\n return { Bounds: area.bounds };\n case \"hash\":\n return { Hash: area.value };\n case \"geojson\":\n return { GeoJson: area.value };\n case \"tile\":\n return { Tile: { x: area.x, y: area.y, z: area.z } };\n case \"quadkey\":\n return { Quadkey: area.value };\n case \"sector\":\n return {\n Sector: {\n lat: area.lat,\n lon: area.lon,\n meters: area.meters,\n bearing1: area.bearing1,\n bearing2: area.bearing2,\n },\n };\n case \"reference\":\n return { Reference: { collection: area.collection, id: area.id } };\n }\n}\n\nfunction toWireOutputFormat(value: OutputFormat | undefined): unknown {\n if (!value || value === \"objects\") {\n return \"Objects\";\n }\n if (value === \"points\") {\n return \"Points\";\n }\n if (value === \"bounds\") {\n return \"Bounds\";\n }\n if (value === \"ids\") {\n return \"Ids\";\n }\n if (value === \"count\") {\n return \"Count\";\n }\n return { Hashes: { precision: value.hashes.precision } };\n}\n\nfunction toWireWhereComparison(value: WhereComparison): unknown {\n switch (value.type) {\n case \"range\":\n return { Range: { min: value.min, max: value.max } };\n case \"equalsText\":\n return { EqualsText: value.value };\n case \"regex\":\n return { Regex: value.value };\n }\n}\n\nfunction toWireGeofenceQuery(value: GeofenceQuery): unknown {\n switch (value.type) {\n case \"nearby\":\n return {\n Nearby: {\n lat: value.lat,\n lon: value.lon,\n meters: value.meters,\n options: toWireSearchOptions(value.options),\n },\n };\n case \"within\":\n return { Within: { area: toWireArea(value.area), options: toWireSearchOptions(value.options) } };\n case \"intersects\":\n return {\n Intersects: {\n area: toWireArea(value.area),\n options: toWireSearchOptions(value.options),\n },\n };\n case \"roam\":\n return {\n Roam: {\n target_collection: value.targetCollection,\n target_pattern: value.targetPattern,\n meters: value.meters,\n options: toWireSearchOptions(value.options),\n nodwell: value.nodwell ?? false,\n },\n };\n }\n}\n\nfunction fromWireGeofenceDef(value: unknown): GeofenceDef {\n assertRecord(value, \"geofence definition\");\n const detect = value.detect;\n const commands = value.commands;\n if (!Array.isArray(detect) || !Array.isArray(commands)) {\n throw new Error(\"geofence detect and commands must be arrays\");\n }\n return {\n collection: expectString(value.collection, \"geofence collection\"),\n query: fromWireGeofenceQuery(value.query),\n detect: detect.map(fromWireDetectType),\n commands: commands.map(fromWireMutationCommand),\n };\n}\n\nfunction fromWireGeofenceQuery(value: unknown): GeofenceQuery {\n assertRecord(value, \"geofence query\");\n if (\"Nearby\" in value) {\n const nearby = value.Nearby;\n assertRecord(nearby, \"nearby query\");\n return {\n type: \"nearby\",\n lat: Number(nearby.lat),\n lon: Number(nearby.lon),\n meters: Number(nearby.meters),\n options: fromWireSearchOptions(nearby.options),\n };\n }\n if (\"Within\" in value) {\n const within = value.Within;\n assertRecord(within, \"within query\");\n return {\n type: \"within\",\n area: fromWireArea(within.area),\n options: fromWireSearchOptions(within.options),\n };\n }\n if (\"Intersects\" in value) {\n const intersects = value.Intersects;\n assertRecord(intersects, \"intersects query\");\n return {\n type: \"intersects\",\n area: fromWireArea(intersects.area),\n options: fromWireSearchOptions(intersects.options),\n };\n }\n if (\"Roam\" in value) {\n const roam = value.Roam;\n assertRecord(roam, \"roam query\");\n return {\n type: \"roam\",\n targetCollection: expectString(roam.target_collection, \"roam target collection\"),\n targetPattern: expectString(roam.target_pattern, \"roam target pattern\"),\n meters: Number(roam.meters),\n options: fromWireSearchOptions(roam.options),\n nodwell: typeof roam.nodwell === \"boolean\" ? roam.nodwell : undefined,\n };\n }\n throw new Error(\"unknown geofence query shape\");\n}\n\nfunction fromWireArea(value: unknown): Area {\n assertRecord(value, \"area\");\n if (\"Circle\" in value) {\n const circle = value.Circle;\n assertRecord(circle, \"circle area\");\n return {\n type: \"circle\",\n lat: Number(circle.lat),\n lon: Number(circle.lon),\n meters: Number(circle.meters),\n };\n }\n if (\"Bounds\" in value) {\n return { type: \"bounds\", bounds: value.Bounds as BoundingBox };\n }\n if (\"Hash\" in value) {\n return { type: \"hash\", value: String(value.Hash) };\n }\n if (\"GeoJson\" in value) {\n return { type: \"geojson\", value: value.GeoJson as JsonValue };\n }\n if (\"Tile\" in value) {\n const tile = value.Tile;\n assertRecord(tile, \"tile area\");\n return { type: \"tile\", x: Number(tile.x), y: Number(tile.y), z: Number(tile.z) };\n }\n if (\"Quadkey\" in value) {\n return { type: \"quadkey\", value: String(value.Quadkey) };\n }\n if (\"Sector\" in value) {\n const sector = value.Sector;\n assertRecord(sector, \"sector area\");\n return {\n type: \"sector\",\n lat: Number(sector.lat),\n lon: Number(sector.lon),\n meters: Number(sector.meters),\n bearing1: Number(sector.bearing1),\n bearing2: Number(sector.bearing2),\n };\n }\n if (\"Reference\" in value) {\n const reference = value.Reference;\n assertRecord(reference, \"reference area\");\n return {\n type: \"reference\",\n collection: expectString(reference.collection, \"reference collection\"),\n id: expectString(reference.id, \"reference id\"),\n };\n }\n throw new Error(\"unknown area shape\");\n}\n\nfunction fromWireSearchOptions(value: unknown): SearchOptions | undefined {\n if (!isRecord(value)) {\n return undefined;\n }\n return {\n cursor: typeof value.cursor === \"number\" ? value.cursor : undefined,\n limit: typeof value.limit === \"number\" ? value.limit : undefined,\n nofields: typeof value.nofields === \"boolean\" ? value.nofields : undefined,\n matchPattern:\n typeof value.match_pattern === \"string\" ? value.match_pattern : undefined,\n sort: value.sort === \"Desc\" ? \"desc\" : value.sort === \"Asc\" ? \"asc\" : undefined,\n clip: typeof value.clip === \"boolean\" ? value.clip : undefined,\n };\n}\n\nfunction toWireSetCondition(value: SetObjectOptions[\"condition\"] | undefined): unknown {\n switch (value) {\n case \"nx\":\n return \"Nx\";\n case \"xx\":\n return \"Xx\";\n case \"always\":\n case undefined:\n return \"Always\";\n }\n}\n\nfunction toWireMutationCommand(value: MutationCommand): string {\n switch (value) {\n case \"set\":\n return \"Set\";\n case \"del\":\n return \"Del\";\n case \"drop\":\n return \"Drop\";\n case \"fset\":\n return \"Fset\";\n }\n}\n\nfunction fromWireMutationCommand(value: unknown): MutationCommand {\n switch (value) {\n case \"Set\":\n case \"set\":\n return \"set\";\n case \"Del\":\n case \"del\":\n return \"del\";\n case \"Drop\":\n case \"drop\":\n return \"drop\";\n case \"Fset\":\n case \"fset\":\n return \"fset\";\n default:\n throw new Error(`unknown mutation command: ${String(value)}`);\n }\n}\n\nfunction toWireDetectType(value: DetectType): string {\n switch (value) {\n case \"inside\":\n return \"Inside\";\n case \"outside\":\n return \"Outside\";\n case \"enter\":\n return \"Enter\";\n case \"exit\":\n return \"Exit\";\n case \"cross\":\n return \"Cross\";\n case \"roam\":\n return \"Roam\";\n }\n}\n\nfunction fromWireDetectType(value: unknown): DetectType {\n switch (value) {\n case \"Inside\":\n case \"inside\":\n return \"inside\";\n case \"Outside\":\n case \"outside\":\n return \"outside\";\n case \"Enter\":\n case \"enter\":\n return \"enter\";\n case \"Exit\":\n case \"exit\":\n return \"exit\";\n case \"Cross\":\n case \"cross\":\n return \"cross\";\n case \"Roam\":\n case \"roam\":\n return \"roam\";\n default:\n throw new Error(`unknown detect type: ${String(value)}`);\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction assertRecord(value: unknown, label: string): asserts value is Record<string, unknown> {\n if (!isRecord(value)) {\n throw new Error(`${label} must be an object`);\n }\n}\n\nfunction expectString(value: unknown, label: string): string {\n if (typeof value !== \"string\") {\n throw new Error(`${label} must be a string`);\n }\n return value;\n}\n","import BrowserWorker from \"./engine.worker.ts?worker\";\nimport type {\n WorkerMethod,\n WorkerOutboundMessage,\n WorkerRequest,\n WorkerResponse,\n} from \"./messages.js\";\nimport {\n fromWireObject,\n fromWireHookDef,\n fromWireSearchResults,\n toWireAreaQuery,\n toWireGeofenceDef,\n toWireNearbyQuery,\n toWireSearchOptions,\n toWireSetObjectRequest,\n type AreaQuery,\n type BoundingBox,\n type CollectionInfo,\n type CollectionStats,\n type GeofenceDef,\n type GeofenceEvent,\n type HookDef,\n type HookInfo,\n type LatLngObject,\n type LatLngWasmEventMap,\n type NearbyQuery,\n type SearchOptions,\n type SearchResults,\n type ServerInfo,\n type SetObjectOptions,\n type GeoObject,\n} from \"./types.js\";\n\n/** Configuration for `createLatLng`. */\nexport interface CreateLatLngOptions {\n /**\n * Explicit URL for `latlng_core_bg.wasm`.\n *\n * Use this when your bundler or CDN serves the wasm file from a custom\n * location. If omitted, the bundled worker resolves `../wasm/latlng_core_bg.wasm`\n * relative to its own emitted worker URL.\n */\n wasmUrl?: string | URL;\n /**\n * Custom worker factory for tests or advanced bundlers.\n *\n * Normal browser applications should omit this and let the package create its\n * bundled module worker.\n */\n workerFactory?: () => Worker;\n}\n\ntype PendingRequest = {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n};\n\n/**\n * Browser-only latlng client backed by a dedicated Web Worker and WebAssembly engine.\n *\n * Every API method is asynchronous because requests are sent to the worker with\n * `postMessage`. The main thread never owns or calls the wasm engine directly.\n */\nexport class LatLngWasmClient {\n readonly #worker: Worker;\n readonly #target = new EventTarget();\n readonly #pending = new Map<number, PendingRequest>();\n readonly #ready: Promise<void>;\n #nextId = 1;\n #closed = false;\n\n /** Creates a client around a Web Worker. Prefer `createLatLng()` in application code. */\n public constructor(worker: Worker, options: Pick<CreateLatLngOptions, \"wasmUrl\"> = {}) {\n this.#worker = worker;\n this.#worker.addEventListener(\"message\", this.#handleMessage);\n this.#worker.addEventListener(\"error\", this.#handleError);\n this.#ready = this.#request(\n \"init\",\n options.wasmUrl ? String(options.wasmUrl) : null,\n ).then(() => undefined);\n }\n\n /** Resolves when the worker has loaded and initialized the wasm engine. */\n public ready(): Promise<void> {\n return this.#ready;\n }\n\n /** Creates a collection explicitly. Object writes still create missing collections implicitly. */\n public async createCollection(collection: string): Promise<boolean> {\n return Boolean(await this.#request(\"createCollection\", collection));\n }\n\n /** Drops a collection and all objects stored in it. */\n public async dropCollection(collection: string): Promise<boolean> {\n return Boolean(await this.#request(\"dropCollection\", collection));\n }\n\n /** Lists collection names matching a glob pattern. Defaults to all collections. */\n public async collections(pattern = \"*\"): Promise<string[]> {\n return (await this.#request(\"collections\", pattern)) as string[];\n }\n\n /** Returns collection bounds and statistics, or `null` if the collection does not exist. */\n public async collectionInfo(collection: string): Promise<CollectionInfo | null> {\n return (await this.#request(\"collectionInfo\", collection)) as CollectionInfo | null;\n }\n\n /** Stores or updates an object. */\n public async setObject(\n collection: string,\n id: string,\n object: GeoObject,\n options?: SetObjectOptions,\n ): Promise<boolean> {\n return Boolean(\n await this.#request(\n \"setObject\",\n collection,\n id,\n toWireSetObjectRequest(object, options),\n ),\n );\n }\n\n /** Stores or updates a point object. */\n public async setPoint(\n collection: string,\n id: string,\n coordinates: { lat: number; lon: number; z?: number | null },\n options?: SetObjectOptions,\n ): Promise<boolean> {\n return this.setObject(\n collection,\n id,\n { type: \"point\", lat: coordinates.lat, lon: coordinates.lon, z: coordinates.z },\n options,\n );\n }\n\n /** Returns an object by ID, or `null` when it does not exist. */\n public async getObject(\n collection: string,\n id: string,\n options: { withFields?: boolean } = {},\n ): Promise<LatLngObject | null> {\n return fromWireObject(\n await this.#request(\"getObject\", collection, id, options.withFields ?? true),\n );\n }\n\n /** Deletes an object by ID. */\n public async deleteObject(collection: string, id: string): Promise<boolean> {\n return Boolean(await this.#request(\"deleteObject\", collection, id));\n }\n\n /** Sets a TTL in seconds for an existing object. */\n public async expire(collection: string, id: string, seconds: number): Promise<boolean> {\n return Boolean(await this.#request(\"expire\", collection, id, seconds));\n }\n\n /** Removes TTL metadata from an existing object. */\n public async persist(collection: string, id: string): Promise<boolean> {\n return Boolean(await this.#request(\"persist\", collection, id));\n }\n\n /** Returns the remaining TTL in seconds, or `null` when no TTL is set or the object is missing. */\n public async ttl(collection: string, id: string): Promise<number | null> {\n const value = await this.#request(\"ttl\", collection, id);\n return typeof value === \"number\" ? value : null;\n }\n\n /** Creates or replaces a browser geofence hook. Matching events are emitted as JS events. */\n public async setHook(name: string, def: GeofenceDef): Promise<boolean> {\n return Boolean(await this.#request(\"setHook\", name, { def: toWireGeofenceDef(def) }));\n }\n\n /** Deletes a browser geofence hook. */\n public async deleteHook(name: string): Promise<boolean> {\n return Boolean(await this.#request(\"deleteHook\", name));\n }\n\n /** Lists browser geofence hooks matching a glob pattern. */\n public async hooks(pattern = \"*\"): Promise<HookInfo[]> {\n return (await this.#request(\"hooks\", pattern)) as HookInfo[];\n }\n\n /** Returns a full browser geofence hook definition, or `null` when it does not exist. */\n public async getHook(name: string): Promise<HookDef | null> {\n return fromWireHookDef(await this.#request(\"getHook\", name));\n }\n\n /** Runs a nearby spatial query. */\n public async nearby(collection: string, query: NearbyQuery): Promise<SearchResults> {\n return fromWireSearchResults(\n await this.#request(\"nearby\", collection, toWireNearbyQuery(query)),\n );\n }\n\n /** Runs a within spatial query. */\n public async within(collection: string, query: AreaQuery): Promise<SearchResults> {\n return fromWireSearchResults(\n await this.#request(\"within\", collection, toWireAreaQuery(query)),\n );\n }\n\n /** Runs an intersects spatial query. */\n public async intersects(collection: string, query: AreaQuery): Promise<SearchResults> {\n return fromWireSearchResults(\n await this.#request(\"intersects\", collection, toWireAreaQuery(query)),\n );\n }\n\n /** Scans a collection. */\n public async scan(collection: string, options?: SearchOptions): Promise<SearchResults> {\n return fromWireSearchResults(\n await this.#request(\"scan\", collection, toWireSearchOptions(options)),\n );\n }\n\n /** Scans string objects in a collection. */\n public async search(collection: string, options?: SearchOptions): Promise<SearchResults> {\n return fromWireSearchResults(\n await this.#request(\"search\", collection, toWireSearchOptions(options)),\n );\n }\n\n /** Returns collection bounds, or `null` when the collection does not exist. */\n public async bounds(collection: string): Promise<BoundingBox | null> {\n return (await this.#request(\"bounds\", collection)) as BoundingBox | null;\n }\n\n /** Returns statistics for existing collections. */\n public async stats(collections: string[]): Promise<CollectionStats[]> {\n return (await this.#request(\"stats\", collections)) as CollectionStats[];\n }\n\n /** Returns engine metadata for the in-browser wasm engine. */\n public async serverInfo(): Promise<ServerInfo> {\n return (await this.#request(\"serverInfo\")) as ServerInfo;\n }\n\n /** Registers a typed event listener for mutation or geofence events. */\n public addEventListener<K extends keyof LatLngWasmEventMap>(\n type: K,\n listener: (event: LatLngWasmEventMap[K]) => void,\n options?: AddEventListenerOptions,\n ): void {\n this.#target.addEventListener(type, listener as EventListener, options);\n }\n\n /** Removes a previously registered typed event listener. */\n public removeEventListener<K extends keyof LatLngWasmEventMap>(\n type: K,\n listener: (event: LatLngWasmEventMap[K]) => void,\n options?: EventListenerOptions,\n ): void {\n this.#target.removeEventListener(type, listener as EventListener, options);\n }\n\n /** Convenience alias for `addEventListener`. */\n public on<K extends keyof LatLngWasmEventMap>(\n type: K,\n listener: (event: LatLngWasmEventMap[K]) => void,\n ): () => void {\n this.addEventListener(type, listener);\n return () => this.removeEventListener(type, listener);\n }\n\n /** Terminates the worker and rejects pending requests. The client cannot be reused afterward. */\n public close(): void {\n if (this.#closed) {\n return;\n }\n this.#closed = true;\n this.#worker.removeEventListener(\"message\", this.#handleMessage);\n this.#worker.removeEventListener(\"error\", this.#handleError);\n this.#worker.terminate();\n for (const pending of this.#pending.values()) {\n pending.reject(new Error(\"latlng wasm client is closed\"));\n }\n this.#pending.clear();\n }\n\n #request(method: WorkerMethod, ...params: unknown[]): Promise<unknown> {\n if (this.#closed) {\n return Promise.reject(new Error(\"latlng wasm client is closed\"));\n }\n const id = this.#nextId++;\n const request: WorkerRequest = { id, method, params };\n return new Promise((resolve, reject) => {\n this.#pending.set(id, { resolve, reject });\n this.#worker.postMessage(request);\n });\n }\n\n #handleMessage = (message: MessageEvent<WorkerOutboundMessage>): void => {\n const data = message.data;\n if (\"type\" in data && data.type === \"event\") {\n if (data.eventType === \"mutation\") {\n this.#target.dispatchEvent(new CustomEvent(\"mutation\", { detail: data.event }));\n return;\n }\n this.#target.dispatchEvent(new CustomEvent(\"geofence\", { detail: data.event }));\n this.#target.dispatchEvent(\n new CustomEvent(`geofence:${data.event.detect}`, { detail: data.event }),\n );\n return;\n }\n\n this.#resolveResponse(data as WorkerResponse);\n };\n\n #handleError = (event: ErrorEvent): void => {\n const error = new Error(event.message || \"latlng wasm worker failed\");\n for (const pending of this.#pending.values()) {\n pending.reject(error);\n }\n this.#pending.clear();\n };\n\n #resolveResponse(response: WorkerResponse): void {\n const pending = this.#pending.get(response.id);\n if (!pending) {\n return;\n }\n this.#pending.delete(response.id);\n if (response.ok) {\n pending.resolve(response.result);\n } else {\n pending.reject(new Error(response.error));\n }\n }\n}\n\n/** Creates a worker-backed in-browser latlng engine. */\nexport async function createLatLng(\n options: CreateLatLngOptions = {},\n): Promise<LatLngWasmClient> {\n const worker = options.workerFactory?.() ?? new BrowserWorker();\n const client = new LatLngWasmClient(worker, { wasmUrl: options.wasmUrl });\n await client.ready();\n return client;\n}\n"],"mappings":"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"}
|
package/dist/messages.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,kBAAkB,GAClB,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,cAAc,GACd,QAAQ,GACR,SAAS,GACT,KAAK,GACL,SAAS,GACT,YAAY,GACZ,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,YAAY,CAAC;AAEjB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAExE,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB"}
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAEnD,sCAAsC;AACtC,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CA2B9E;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/vite-plugin/index.ts"],"sourcesContent":["/**\n * Vite plugin for @latlng/wasm browser builds.\n *\n * The package worker resolves the wasm file at `../wasm/latlng_core_bg.wasm`\n * relative to the emitted worker asset. This plugin copies the packaged wasm\n * file into that location for Vite app builds.\n *\n * @packageDocumentation\n */\n\nimport { copyFileSync, existsSync, mkdirSync } from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport type { Plugin, ResolvedConfig } from \"vite\";\n\n/** Options for `latlngWasmPlugin`. */\nexport interface LatLngWasmPluginOptions {\n /**\n * Source wasm file path.\n *\n * Defaults to the wasm file bundled with `@latlng/wasm`.\n */\n wasmPath?: string;\n /**\n * Directory inside Vite's output directory where the wasm file is copied.\n *\n * @default \"wasm\"\n */\n wasmDirName?: string;\n /**\n * Output wasm file name.\n *\n * @default \"latlng_core_bg.wasm\"\n */\n wasmFileName?: string;\n}\n\n/** Returns the absolute path to the wasm file bundled with `@latlng/wasm`. */\nexport function getLatLngWasmPath(): string {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n return resolve(currentDir, \"..\", \"wasm\", \"latlng_core_bg.wasm\");\n}\n\n/** Copies `latlng_core_bg.wasm` into Vite's build output for worker runtime loading. */\nexport function latlngWasmPlugin(options: LatLngWasmPluginOptions = {}): Plugin {\n const {\n wasmPath = getLatLngWasmPath(),\n wasmDirName = \"wasm\",\n wasmFileName = \"latlng_core_bg.wasm\",\n } = options;\n let config: ResolvedConfig;\n\n return {\n name: \"latlng-wasm-plugin\",\n apply: \"build\",\n configResolved(resolvedConfig) {\n config = resolvedConfig;\n },\n writeBundle(outputOptions) {\n const outDir = outputOptions.dir ?? resolve(config.root, config.build.outDir);\n const targetDir = resolve(outDir, wasmDirName);\n const targetPath = resolve(targetDir, wasmFileName);\n\n if (!existsSync(wasmPath)) {\n this.error(`latlng wasm file not found: ${wasmPath}`);\n }\n\n mkdirSync(targetDir, { recursive: true });\n copyFileSync(wasmPath, targetPath);\n },\n };\n}\n\nexport default latlngWasmPlugin;\n"],"mappings":";;;;AAsCA,SAAgB,IAA4B;CAE1C,OAAO,EADY,EAAQ,EAAc,OAAO,KAAK,IAAI,CAC1C,EAAY,MAAM,QAAQ,sBAAsB;;AAIjE,SAAgB,EAAiB,IAAmC,EAAE,EAAU;CAC9E,IAAM,EACJ,cAAW,GAAmB,EAC9B,iBAAc,QACd,kBAAe,0BACb,GACA;CAEJ,OAAO;EACL,MAAM;EACN,OAAO;EACP,eAAe,GAAgB;GAC7B,IAAS;;EAEX,YAAY,GAAe;GAEzB,IAAM,IAAY,EADH,EAAc,OAAO,EAAQ,EAAO,MAAM,EAAO,MAAM,OAAO,EAC3C,EAAY,EACxC,IAAa,EAAQ,GAAW,EAAa;GAOnD,AALK,EAAW,EAAS,IACvB,KAAK,MAAM,+BAA+B,IAAW,EAGvD,EAAU,GAAW,EAAE,WAAW,IAAM,CAAC,EACzC,EAAa,GAAU,EAAW;;EAErC"}
|