Last active
February 11, 2024 02:39
-
-
Save philholden/4c4c6390dd832c916c9624f48cc193f8 to your computer and use it in GitHub Desktop.
Automerge WASM in Cloudflare Worker
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import wasmBytes from "./automerge_wasm_bg.wasm"; | |
import * as bg from "./automerge_wasm_bg.js"; | |
const {create} = bg; | |
export interface Env {} | |
export default { | |
async fetch(request, env, ctx): Promise<Response> { | |
// async init cannot happen outside request | |
// see later for generating bg.imports | |
const module = await WebAssembly.instantiate(bg.wasmBytes,bg.imports); | |
bg.__wbg_set_wasm(module.exports); | |
let doc = create(); | |
doc.put("/", "prop1", 100); | |
let x = doc.materialize("_root"); | |
return new Response(JSON.stringify(x)); | |
}, | |
}; |
In the end ./automerge_wasm_bg.js
looked like this:
let wasm;
export function __wbg_set_wasm(val) {
wasm = val;
}
const lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;
let cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });
cachedTextDecoder.decode();
let cachedUint8Memory0 = null;
function getUint8Memory0() {
if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) {
cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer);
}
return cachedUint8Memory0;
}
function getStringFromWasm0(ptr, len) {
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
}
const heap = new Array(128).fill(undefined);
heap.push(undefined, null, true, false);
let heap_next = heap.length;
function addHeapObject(obj) {
if (heap_next === heap.length) heap.push(heap.length + 1);
const idx = heap_next;
heap_next = heap[idx];
heap[idx] = obj;
return idx;
}
function getObject(idx) { return heap[idx]; }
function dropObject(idx) {
if (idx < 132) return;
heap[idx] = heap_next;
heap_next = idx;
}
function takeObject(idx) {
const ret = getObject(idx);
dropObject(idx);
return ret;
}
let WASM_VECTOR_LEN = 0;
const lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder;
let cachedTextEncoder = new lTextEncoder('utf-8');
const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
? function (arg, view) {
return cachedTextEncoder.encodeInto(arg, view);
}
: function (arg, view) {
const buf = cachedTextEncoder.encode(arg);
view.set(buf);
return {
read: arg.length,
written: buf.length
};
});
function passStringToWasm0(arg, malloc, realloc) {
if (realloc === undefined) {
const buf = cachedTextEncoder.encode(arg);
const ptr = malloc(buf.length);
getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf);
WASM_VECTOR_LEN = buf.length;
return ptr;
}
let len = arg.length;
let ptr = malloc(len);
const mem = getUint8Memory0();
let offset = 0;
for (; offset < len; offset++) {
const code = arg.charCodeAt(offset);
if (code > 0x7F) break;
mem[ptr + offset] = code;
}
if (offset !== len) {
if (offset !== 0) {
arg = arg.slice(offset);
}
ptr = realloc(ptr, len, len = offset + arg.length * 3);
const view = getUint8Memory0().subarray(ptr + offset, ptr + len);
const ret = encodeString(arg, view);
offset += ret.written;
}
WASM_VECTOR_LEN = offset;
return ptr;
}
function isLikeNone(x) {
return x === undefined || x === null;
}
let cachedInt32Memory0 = null;
function getInt32Memory0() {
if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) {
cachedInt32Memory0 = new Int32Array(wasm.memory.buffer);
}
return cachedInt32Memory0;
}
let cachedFloat64Memory0 = null;
function getFloat64Memory0() {
if (cachedFloat64Memory0 === null || cachedFloat64Memory0.byteLength === 0) {
cachedFloat64Memory0 = new Float64Array(wasm.memory.buffer);
}
return cachedFloat64Memory0;
}
function debugString(val) {
// primitive types
const type = typeof val;
if (type == 'number' || type == 'boolean' || val == null) {
return `${val}`;
}
if (type == 'string') {
return `"${val}"`;
}
if (type == 'symbol') {
const description = val.description;
if (description == null) {
return 'Symbol';
} else {
return `Symbol(${description})`;
}
}
if (type == 'function') {
const name = val.name;
if (typeof name == 'string' && name.length > 0) {
return `Function(${name})`;
} else {
return 'Function';
}
}
// objects
if (Array.isArray(val)) {
const length = val.length;
let debug = '[';
if (length > 0) {
debug += debugString(val[0]);
}
for(let i = 1; i < length; i++) {
debug += ', ' + debugString(val[i]);
}
debug += ']';
return debug;
}
// Test for built-in
const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
let className;
if (builtInMatches.length > 1) {
className = builtInMatches[1];
} else {
// Failed to match the standard '[object ClassName]'
return toString.call(val);
}
if (className == 'Object') {
// we're a user defined class or Object
// JSON.stringify avoids problems with cycles, and is generally much
// easier than looping through ownProperties of `val`.
try {
return 'Object(' + JSON.stringify(val) + ')';
} catch (_) {
return 'Object';
}
}
// errors
if (val instanceof Error) {
return `${val.name}: ${val.message}\n${val.stack}`;
}
// TODO we could test for more things here, like `Set`s and `Map`s.
return className;
}
function _assertClass(instance, klass) {
if (!(instance instanceof klass)) {
throw new Error(`expected instance of ${klass.name}`);
}
return instance.ptr;
}
/**
* @param {boolean} text_v2
* @param {string | undefined} actor
* @returns {Automerge}
*/
export function create(text_v2, actor) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
var ptr0 = isLikeNone(actor) ? 0 : passStringToWasm0(actor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
wasm.create(retptr, text_v2, ptr0, len0);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return Automerge.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {Uint8Array} data
* @param {boolean} text_v2
* @param {string | undefined} actor
* @returns {Automerge}
*/
export function load(data, text_v2, actor) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
var ptr0 = isLikeNone(actor) ? 0 : passStringToWasm0(actor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
wasm.load(retptr, addHeapObject(data), text_v2, ptr0, len0);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return Automerge.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} change
* @returns {Uint8Array}
*/
export function encodeChange(change) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.encodeChange(retptr, addHeapObject(change));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {Uint8Array} change
* @returns {any}
*/
export function decodeChange(change) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.decodeChange(retptr, addHeapObject(change));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {SyncState}
*/
export function initSyncState() {
const ret = wasm.initSyncState();
return SyncState.__wrap(ret);
}
/**
* @param {any} state
* @returns {SyncState}
*/
export function importSyncState(state) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.importSyncState(retptr, addHeapObject(state));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return SyncState.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {SyncState} state
* @returns {any}
*/
export function exportSyncState(state) {
_assertClass(state, SyncState);
const ret = wasm.exportSyncState(state.ptr);
return takeObject(ret);
}
/**
* @param {any} message
* @returns {Uint8Array}
*/
export function encodeSyncMessage(message) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.encodeSyncMessage(retptr, addHeapObject(message));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {Uint8Array} msg
* @returns {any}
*/
export function decodeSyncMessage(msg) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.decodeSyncMessage(retptr, addHeapObject(msg));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {SyncState} state
* @returns {Uint8Array}
*/
export function encodeSyncState(state) {
_assertClass(state, SyncState);
const ret = wasm.encodeSyncState(state.ptr);
return takeObject(ret);
}
/**
* @param {Uint8Array} data
* @returns {SyncState}
*/
export function decodeSyncState(data) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.decodeSyncState(retptr, addHeapObject(data));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return SyncState.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
function handleError(f, args) {
try {
return f.apply(this, args);
} catch (e) {
wasm.__wbindgen_exn_store(addHeapObject(e));
}
}
function getArrayU8FromWasm0(ptr, len) {
return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
}
/**
* How text is represented in materialized objects on the JS side
*/
export const TextRepresentation = Object.freeze({
/**
* As an array of characters and objects
*/
Array:0,"0":"Array",
/**
* As a single JS string
*/
String:1,"1":"String", });
//const AutomergeFinalization = new FinalizationRegistry(ptr => wasm.__wbg_automerge_free(ptr));
/**
*/
export class Automerge {
static __wrap(ptr) {
const obj = Object.create(Automerge.prototype);
obj.ptr = ptr;
// AutomergeFinalization.register(obj, obj.ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.ptr;
this.ptr = 0;
// AutomergeFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_automerge_free(ptr);
}
/**
* @param {string | undefined} actor
* @param {number} text_rep
* @returns {Automerge}
*/
static new(actor, text_rep) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
var ptr0 = isLikeNone(actor) ? 0 : passStringToWasm0(actor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
wasm.automerge_new(retptr, ptr0, len0, text_rep);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return Automerge.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string | undefined} actor
* @returns {Automerge}
*/
clone(actor) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
var ptr0 = isLikeNone(actor) ? 0 : passStringToWasm0(actor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
wasm.automerge_clone(retptr, this.ptr, ptr0, len0);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return Automerge.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string | undefined} actor
* @param {any} heads
* @returns {Automerge}
*/
fork(actor, heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
var ptr0 = isLikeNone(actor) ? 0 : passStringToWasm0(actor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
wasm.automerge_fork(retptr, this.ptr, ptr0, len0, addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return Automerge.__wrap(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {any}
*/
pendingOps() {
const ret = wasm.automerge_pendingOps(this.ptr);
return takeObject(ret);
}
/**
* @param {string | undefined} message
* @param {number | undefined} time
* @returns {any}
*/
commit(message, time) {
var ptr0 = isLikeNone(message) ? 0 : passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
const ret = wasm.automerge_commit(this.ptr, ptr0, len0, !isLikeNone(time), isLikeNone(time) ? 0 : time);
return takeObject(ret);
}
/**
* @param {Automerge} other
* @returns {Array<any>}
*/
merge(other) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertClass(other, Automerge);
wasm.automerge_merge(retptr, this.ptr, other.ptr);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {number}
*/
rollback() {
const ret = wasm.automerge_rollback(this.ptr);
return ret;
}
/**
* @param {any} obj
* @param {Array<any> | undefined} heads
* @returns {Array<any>}
*/
keys(obj, heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_keys(retptr, this.ptr, addHeapObject(obj), isLikeNone(heads) ? 0 : addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {Array<any> | undefined} heads
* @returns {string}
*/
text(obj, heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_text(retptr, this.ptr, addHeapObject(obj), isLikeNone(heads) ? 0 : addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
var r3 = getInt32Memory0()[retptr / 4 + 3];
var ptr0 = r0;
var len0 = r1;
if (r3) {
ptr0 = 0; len0 = 0;
throw takeObject(r2);
}
return getStringFromWasm0(ptr0, len0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
wasm.__wbindgen_free(ptr0, len0);
}
}
/**
* @param {any} obj
* @param {number} start
* @param {number} delete_count
* @param {any} text
*/
splice(obj, start, delete_count, text) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_splice(retptr, this.ptr, addHeapObject(obj), start, delete_count, addHeapObject(text));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} value
* @param {any} datatype
*/
push(obj, value, datatype) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_push(retptr, this.ptr, addHeapObject(obj), addHeapObject(value), addHeapObject(datatype));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} value
* @returns {string | undefined}
*/
pushObject(obj, value) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_pushObject(retptr, this.ptr, addHeapObject(obj), addHeapObject(value));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
var r3 = getInt32Memory0()[retptr / 4 + 3];
if (r3) {
throw takeObject(r2);
}
let v0;
if (r0 !== 0) {
v0 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_free(r0, r1 * 1);
}
return v0;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {number} index
* @param {any} value
* @param {any} datatype
*/
insert(obj, index, value, datatype) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_insert(retptr, this.ptr, addHeapObject(obj), index, addHeapObject(value), addHeapObject(datatype));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {number} index
* @param {any} value
* @returns {string | undefined}
*/
insertObject(obj, index, value) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_insertObject(retptr, this.ptr, addHeapObject(obj), index, addHeapObject(value));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
var r3 = getInt32Memory0()[retptr / 4 + 3];
if (r3) {
throw takeObject(r2);
}
let v0;
if (r0 !== 0) {
v0 = getStringFromWasm0(r0, r1).slice();
wasm.__wbindgen_free(r0, r1 * 1);
}
return v0;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} prop
* @param {any} value
* @param {any} datatype
*/
put(obj, prop, value, datatype) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_put(retptr, this.ptr, addHeapObject(obj), addHeapObject(prop), addHeapObject(value), addHeapObject(datatype));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} prop
* @param {any} value
* @returns {any}
*/
putObject(obj, prop, value) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_putObject(retptr, this.ptr, addHeapObject(obj), addHeapObject(prop), addHeapObject(value));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} prop
* @param {any} value
*/
increment(obj, prop, value) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_increment(retptr, this.ptr, addHeapObject(obj), addHeapObject(prop), addHeapObject(value));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} prop
* @param {Array<any> | undefined} heads
* @returns {any}
*/
get(obj, prop, heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_get(retptr, this.ptr, addHeapObject(obj), addHeapObject(prop), isLikeNone(heads) ? 0 : addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} prop
* @param {Array<any> | undefined} heads
* @returns {any}
*/
getWithType(obj, prop, heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_getWithType(retptr, this.ptr, addHeapObject(obj), addHeapObject(prop), isLikeNone(heads) ? 0 : addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} arg
* @param {Array<any> | undefined} heads
* @returns {Array<any>}
*/
getAll(obj, arg, heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_getAll(retptr, this.ptr, addHeapObject(obj), addHeapObject(arg), isLikeNone(heads) ? 0 : addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} enable
* @returns {any}
*/
enableFreeze(enable) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_enableFreeze(retptr, this.ptr, addHeapObject(enable));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} enable
* @returns {any}
*/
enablePatches(enable) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_enablePatches(retptr, this.ptr, addHeapObject(enable));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} datatype
* @param {any} _function
*/
registerDatatype(datatype, _function) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_registerDatatype(retptr, this.ptr, addHeapObject(datatype), addHeapObject(_function));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} object
* @param {any} meta
* @param {any} callback
* @returns {any}
*/
applyPatches(object, meta, callback) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_applyPatches(retptr, this.ptr, addHeapObject(object), addHeapObject(meta), addHeapObject(callback));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {Array<any>}
*/
popPatches() {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_popPatches(retptr, this.ptr);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {Array<any> | undefined} heads
* @returns {number}
*/
length(obj, heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_length(retptr, this.ptr, addHeapObject(obj), isLikeNone(heads) ? 0 : addHeapObject(heads));
var r0 = getFloat64Memory0()[retptr / 8 + 0];
var r2 = getInt32Memory0()[retptr / 4 + 2];
var r3 = getInt32Memory0()[retptr / 4 + 3];
if (r3) {
throw takeObject(r2);
}
return r0;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {any} prop
*/
delete(obj, prop) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_delete(retptr, this.ptr, addHeapObject(obj), addHeapObject(prop));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {Uint8Array}
*/
save() {
const ret = wasm.automerge_save(this.ptr);
return takeObject(ret);
}
/**
* @returns {Uint8Array}
*/
saveIncremental() {
const ret = wasm.automerge_saveIncremental(this.ptr);
return takeObject(ret);
}
/**
* @param {Uint8Array} data
* @returns {number}
*/
loadIncremental(data) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_loadIncremental(retptr, this.ptr, addHeapObject(data));
var r0 = getFloat64Memory0()[retptr / 8 + 0];
var r2 = getInt32Memory0()[retptr / 4 + 2];
var r3 = getInt32Memory0()[retptr / 4 + 3];
if (r3) {
throw takeObject(r2);
}
return r0;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} changes
*/
applyChanges(changes) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_applyChanges(retptr, this.ptr, addHeapObject(changes));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} have_deps
* @returns {Array<any>}
*/
getChanges(have_deps) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_getChanges(retptr, this.ptr, addHeapObject(have_deps));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} hash
* @returns {any}
*/
getChangeByHash(hash) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_getChangeByHash(retptr, this.ptr, addHeapObject(hash));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {Automerge} other
* @returns {Array<any>}
*/
getChangesAdded(other) {
_assertClass(other, Automerge);
const ret = wasm.automerge_getChangesAdded(this.ptr, other.ptr);
return takeObject(ret);
}
/**
* @returns {Array<any>}
*/
getHeads() {
const ret = wasm.automerge_getHeads(this.ptr);
return takeObject(ret);
}
/**
* @returns {string}
*/
getActorId() {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_getActorId(retptr, this.ptr);
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
return getStringFromWasm0(r0, r1);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
wasm.__wbindgen_free(r0, r1);
}
}
/**
* @returns {any}
*/
getLastLocalChange() {
const ret = wasm.automerge_getLastLocalChange(this.ptr);
return takeObject(ret);
}
/**
*/
dump() {
wasm.automerge_dump(this.ptr);
}
/**
* @param {Array<any> | undefined} heads
* @returns {Array<any>}
*/
getMissingDeps(heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_getMissingDeps(retptr, this.ptr, isLikeNone(heads) ? 0 : addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {SyncState} state
* @param {Uint8Array} message
*/
receiveSyncMessage(state, message) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
_assertClass(state, SyncState);
wasm.automerge_receiveSyncMessage(retptr, this.ptr, state.ptr, addHeapObject(message));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {SyncState} state
* @returns {any}
*/
generateSyncMessage(state) {
_assertClass(state, SyncState);
const ret = wasm.automerge_generateSyncMessage(this.ptr, state.ptr);
return takeObject(ret);
}
/**
* @param {any} meta
* @returns {any}
*/
toJS(meta) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_toJS(retptr, this.ptr, addHeapObject(meta));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} obj
* @param {Array<any> | undefined} heads
* @param {any} meta
* @returns {any}
*/
materialize(obj, heads, meta) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.automerge_materialize(retptr, this.ptr, addHeapObject(obj), isLikeNone(heads) ? 0 : addHeapObject(heads), addHeapObject(meta));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
var r2 = getInt32Memory0()[retptr / 4 + 2];
if (r2) {
throw takeObject(r1);
}
return takeObject(r0);
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {string | undefined} message
* @param {number | undefined} time
* @returns {any}
*/
emptyChange(message, time) {
var ptr0 = isLikeNone(message) ? 0 : passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
const ret = wasm.automerge_emptyChange(this.ptr, ptr0, len0, !isLikeNone(time), isLikeNone(time) ? 0 : time);
return takeObject(ret);
}
}
//const SyncStateFinalization = new FinalizationRegistry(ptr => wasm.__wbg_syncstate_free(ptr));
/**
*/
export class SyncState {
static __wrap(ptr) {
const obj = Object.create(SyncState.prototype);
obj.ptr = ptr;
// SyncStateFinalization.register(obj, obj.ptr, obj);
return obj;
}
__destroy_into_raw() {
const ptr = this.ptr;
this.ptr = 0;
// SyncStateFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_syncstate_free(ptr);
}
/**
* @returns {any}
*/
get sharedHeads() {
const ret = wasm.syncstate_sharedHeads(this.ptr);
return takeObject(ret);
}
/**
* @returns {any}
*/
get lastSentHeads() {
const ret = wasm.syncstate_lastSentHeads(this.ptr);
return takeObject(ret);
}
/**
* @param {any} heads
*/
set lastSentHeads(heads) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.syncstate_set_lastSentHeads(retptr, this.ptr, addHeapObject(heads));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @param {any} hashes
*/
set sentHashes(hashes) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.syncstate_set_sentHashes(retptr, this.ptr, addHeapObject(hashes));
var r0 = getInt32Memory0()[retptr / 4 + 0];
var r1 = getInt32Memory0()[retptr / 4 + 1];
if (r1) {
throw takeObject(r0);
}
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* @returns {SyncState}
*/
clone() {
const ret = wasm.syncstate_clone(this.ptr);
return SyncState.__wrap(ret);
}
}
export function __wbindgen_string_new(arg0, arg1) {
const ret = getStringFromWasm0(arg0, arg1);
return addHeapObject(ret);
};
export function __wbindgen_object_drop_ref(arg0) {
takeObject(arg0);
};
export function __wbindgen_object_clone_ref(arg0) {
const ret = getObject(arg0);
return addHeapObject(ret);
};
export function __wbindgen_is_undefined(arg0) {
const ret = getObject(arg0) === undefined;
return ret;
};
export function __wbindgen_string_get(arg0, arg1) {
const obj = getObject(arg1);
const ret = typeof(obj) === 'string' ? obj : undefined;
var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
var len0 = WASM_VECTOR_LEN;
getInt32Memory0()[arg0 / 4 + 1] = len0;
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
};
export function __wbindgen_number_new(arg0) {
const ret = arg0;
return addHeapObject(ret);
};
export function __wbindgen_is_string(arg0) {
const ret = typeof(getObject(arg0)) === 'string';
return ret;
};
export function __wbindgen_is_function(arg0) {
const ret = typeof(getObject(arg0)) === 'function';
return ret;
};
export function __wbindgen_number_get(arg0, arg1) {
const obj = getObject(arg1);
const ret = typeof(obj) === 'number' ? obj : undefined;
getFloat64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? 0 : ret;
getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret);
};
export function __wbindgen_is_null(arg0) {
const ret = getObject(arg0) === null;
return ret;
};
export function __wbindgen_boolean_get(arg0) {
const v = getObject(arg0);
const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2;
return ret;
};
export function __wbindgen_json_serialize(arg0, arg1) {
const obj = getObject(arg1);
const ret = JSON.stringify(obj === undefined ? null : obj);
const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
getInt32Memory0()[arg0 / 4 + 1] = len0;
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
};
export function __wbindgen_error_new(arg0, arg1) {
const ret = new Error(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
};
export function __wbg_new_abda76e883ba8a5f() {
const ret = new Error();
return addHeapObject(ret);
};
export function __wbg_stack_658279fe44541cf6(arg0, arg1) {
const ret = getObject(arg1).stack;
const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
getInt32Memory0()[arg0 / 4 + 1] = len0;
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
};
export function __wbg_error_f851667af71bcfc6(arg0, arg1) {
try {
console.error(getStringFromWasm0(arg0, arg1));
} finally {
wasm.__wbindgen_free(arg0, arg1);
}
};
export function __wbindgen_bigint_from_i64(arg0) {
const ret = arg0;
return addHeapObject(ret);
};
export function __wbindgen_bigint_from_u64(arg0) {
const ret = BigInt.asUintN(64, arg0);
return addHeapObject(ret);
};
export function __wbindgen_is_object(arg0) {
const val = getObject(arg0);
const ret = typeof(val) === 'object' && val !== null;
return ret;
};
export function __wbindgen_jsval_loose_eq(arg0, arg1) {
const ret = getObject(arg0) == getObject(arg1);
return ret;
};
export function __wbg_String_91fba7ded13ba54c(arg0, arg1) {
const ret = String(getObject(arg1));
const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
getInt32Memory0()[arg0 / 4 + 1] = len0;
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
};
export function __wbg_set_20cbc34131e76824(arg0, arg1, arg2) {
getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
};
export function __wbg_crypto_e1d53a1d73fb10b8(arg0) {
const ret = getObject(arg0).crypto;
return addHeapObject(ret);
};
export function __wbg_process_038c26bf42b093f8(arg0) {
const ret = getObject(arg0).process;
return addHeapObject(ret);
};
export function __wbg_versions_ab37218d2f0b24a8(arg0) {
const ret = getObject(arg0).versions;
return addHeapObject(ret);
};
export function __wbg_node_080f4b19d15bc1fe(arg0) {
const ret = getObject(arg0).node;
return addHeapObject(ret);
};
export function __wbg_msCrypto_6e7d3e1f92610cbb(arg0) {
const ret = getObject(arg0).msCrypto;
return addHeapObject(ret);
};
export function __wbg_require_78a3dcfbdba9cbce() { return handleError(function () {
const ret = module.require;
return addHeapObject(ret);
}, arguments) };
export function __wbg_getRandomValues_805f1c3d65988a5a() { return handleError(function (arg0, arg1) {
getObject(arg0).getRandomValues(getObject(arg1));
}, arguments) };
export function __wbg_randomFillSync_6894564c2c334c42() { return handleError(function (arg0, arg1, arg2) {
getObject(arg0).randomFillSync(getArrayU8FromWasm0(arg1, arg2));
}, arguments) };
export function __wbg_log_7bb108d119bafbc1(arg0) {
console.log(getObject(arg0));
};
export function __wbg_log_d047cf0648d2678e(arg0, arg1) {
console.log(getObject(arg0), getObject(arg1));
};
export function __wbg_get_27fe3dac1c4d0224(arg0, arg1) {
const ret = getObject(arg0)[arg1 >>> 0];
return addHeapObject(ret);
};
export function __wbg_length_e498fbc24f9c1d4f(arg0) {
const ret = getObject(arg0).length;
return ret;
};
export function __wbg_new_b525de17f44a8943() {
const ret = new Array();
return addHeapObject(ret);
};
export function __wbg_newnoargs_2b8b6bd7753c76ba(arg0, arg1) {
const ret = new Function(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
};
export function __wbg_next_b7d530c04fd8b217(arg0) {
const ret = getObject(arg0).next;
return addHeapObject(ret);
};
export function __wbg_next_88560ec06a094dea() { return handleError(function (arg0) {
const ret = getObject(arg0).next();
return addHeapObject(ret);
}, arguments) };
export function __wbg_done_1ebec03bbd919843(arg0) {
const ret = getObject(arg0).done;
return ret;
};
export function __wbg_value_6ac8da5cc5b3efda(arg0) {
const ret = getObject(arg0).value;
return addHeapObject(ret);
};
export function __wbg_iterator_55f114446221aa5a() {
const ret = Symbol.iterator;
return addHeapObject(ret);
};
export function __wbg_get_baf4855f9a986186() { return handleError(function (arg0, arg1) {
const ret = Reflect.get(getObject(arg0), getObject(arg1));
return addHeapObject(ret);
}, arguments) };
export function __wbg_call_95d1ea488d03e4e8() { return handleError(function (arg0, arg1) {
const ret = getObject(arg0).call(getObject(arg1));
return addHeapObject(ret);
}, arguments) };
export function __wbg_new_f9876326328f45ed() {
const ret = new Object();
return addHeapObject(ret);
};
export function __wbg_length_ea0846e494e3b16e(arg0) {
const ret = getObject(arg0).length;
return ret;
};
export function __wbg_self_e7c1f827057f6584() { return handleError(function () {
const ret = self.self;
return addHeapObject(ret);
}, arguments) };
export function __wbg_window_a09ec664e14b1b81() { return handleError(function () {
const ret = window.window;
return addHeapObject(ret);
}, arguments) };
export function __wbg_globalThis_87cbb8506fecf3a9() { return handleError(function () {
const ret = globalThis.globalThis;
return addHeapObject(ret);
}, arguments) };
export function __wbg_global_c85a9259e621f3db() { return handleError(function () {
const ret = global.global;
return addHeapObject(ret);
}, arguments) };
export function __wbg_set_17224bc548dd1d7b(arg0, arg1, arg2) {
getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
};
export function __wbg_from_67ca20fa722467e6(arg0) {
const ret = Array.from(getObject(arg0));
return addHeapObject(ret);
};
export function __wbg_isArray_39d28997bf6b96b4(arg0) {
const ret = Array.isArray(getObject(arg0));
return ret;
};
export function __wbg_push_49c286f04dd3bf59(arg0, arg1) {
const ret = getObject(arg0).push(getObject(arg1));
return ret;
};
export function __wbg_unshift_06a94bcbcb492eb3(arg0, arg1) {
const ret = getObject(arg0).unshift(getObject(arg1));
return ret;
};
export function __wbg_instanceof_ArrayBuffer_a69f02ee4c4f5065(arg0) {
let result;
try {
result = getObject(arg0) instanceof ArrayBuffer;
} catch {
result = false;
}
const ret = result;
return ret;
};
export function __wbg_new_15d3966e9981a196(arg0, arg1) {
const ret = new Error(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
};
export function __wbg_call_9495de66fdbe016b() { return handleError(function (arg0, arg1, arg2) {
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
return addHeapObject(ret);
}, arguments) };
export function __wbg_call_99043a1e2a9e5916() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3), getObject(arg4));
return addHeapObject(ret);
}, arguments) };
export function __wbg_instanceof_Date_e353425d719aa266(arg0) {
let result;
try {
result = getObject(arg0) instanceof Date;
} catch {
result = false;
}
const ret = result;
return ret;
};
export function __wbg_getTime_7c59072d1651a3cf(arg0) {
const ret = getObject(arg0).getTime();
return ret;
};
export function __wbg_new_f127e324c1313064(arg0) {
const ret = new Date(getObject(arg0));
return addHeapObject(ret);
};
export function __wbg_instanceof_Object_f5a826c4da0d4a94(arg0) {
let result;
try {
result = getObject(arg0) instanceof Object;
} catch {
result = false;
}
const ret = result;
return ret;
};
export function __wbg_assign_b0b6530984f36574(arg0, arg1) {
const ret = Object.assign(getObject(arg0), getObject(arg1));
return addHeapObject(ret);
};
export function __wbg_defineProperty_4926f24c724d5310(arg0, arg1, arg2) {
const ret = Object.defineProperty(getObject(arg0), getObject(arg1), getObject(arg2));
return addHeapObject(ret);
};
export function __wbg_entries_4e1315b774245952(arg0) {
const ret = Object.entries(getObject(arg0));
return addHeapObject(ret);
};
export function __wbg_freeze_4dcdbf0b5d9b50f4(arg0) {
const ret = Object.freeze(getObject(arg0));
return addHeapObject(ret);
};
export function __wbg_keys_60443f4f867207f9(arg0) {
const ret = Object.keys(getObject(arg0));
return addHeapObject(ret);
};
export function __wbg_values_7444c4c2ccefdc9b(arg0) {
const ret = Object.values(getObject(arg0));
return addHeapObject(ret);
};
export function __wbg_concat_040af6c9ba38dd98(arg0, arg1) {
const ret = getObject(arg0).concat(getObject(arg1));
return addHeapObject(ret);
};
export function __wbg_slice_47202b1d012cdc55(arg0, arg1, arg2) {
const ret = getObject(arg0).slice(arg1 >>> 0, arg2 >>> 0);
return addHeapObject(ret);
};
export function __wbg_for_9a885d0d6d415e40(arg0, arg1) {
const ret = Symbol.for(getStringFromWasm0(arg0, arg1));
return addHeapObject(ret);
};
export function __wbg_toString_7a3e0cd68ea2a337(arg0) {
const ret = getObject(arg0).toString();
return addHeapObject(ret);
};
export function __wbg_buffer_cf65c07de34b9a08(arg0) {
const ret = getObject(arg0).buffer;
return addHeapObject(ret);
};
export function __wbg_newwithbyteoffsetandlength_9fb2f11355ecadf5(arg0, arg1, arg2) {
const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);
return addHeapObject(ret);
};
export function __wbg_new_537b7341ce90bb31(arg0) {
const ret = new Uint8Array(getObject(arg0));
return addHeapObject(ret);
};
export function __wbg_set_17499e8aa4003ebd(arg0, arg1, arg2) {
getObject(arg0).set(getObject(arg1), arg2 >>> 0);
};
export function __wbg_length_27a2afe8ab42b09f(arg0) {
const ret = getObject(arg0).length;
return ret;
};
export function __wbg_instanceof_Uint8Array_01cebe79ca606cca(arg0) {
let result;
try {
result = getObject(arg0) instanceof Uint8Array;
} catch {
result = false;
}
const ret = result;
return ret;
};
export function __wbg_newwithlength_b56c882b57805732(arg0) {
const ret = new Uint8Array(arg0 >>> 0);
return addHeapObject(ret);
};
export function __wbg_subarray_7526649b91a252a6(arg0, arg1, arg2) {
const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
return addHeapObject(ret);
};
export function __wbg_apply_5435e78b95a524a6() { return handleError(function (arg0, arg1, arg2) {
const ret = Reflect.apply(getObject(arg0), getObject(arg1), getObject(arg2));
return addHeapObject(ret);
}, arguments) };
export function __wbg_deleteProperty_31090878b92a7c0e() { return handleError(function (arg0, arg1) {
const ret = Reflect.deleteProperty(getObject(arg0), getObject(arg1));
return ret;
}, arguments) };
export function __wbg_ownKeys_9efe69be404540aa() { return handleError(function (arg0) {
const ret = Reflect.ownKeys(getObject(arg0));
return addHeapObject(ret);
}, arguments) };
export function __wbg_set_6aa458a4ebdb65cb() { return handleError(function (arg0, arg1, arg2) {
const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
return ret;
}, arguments) };
export function __wbindgen_debug_string(arg0, arg1) {
const ret = debugString(getObject(arg1));
const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
getInt32Memory0()[arg0 / 4 + 1] = len0;
getInt32Memory0()[arg0 / 4 + 0] = ptr0;
};
export function __wbindgen_throw(arg0, arg1) {
throw new Error(getStringFromWasm0(arg0, arg1));
};
export function __wbindgen_memory() {
const ret = wasm.memory;
return addHeapObject(ret);
};
export const imports = {
"./automerge_wasm_bg.js":
{
__wbindgen_string_new,
__wbindgen_object_drop_ref,
__wbindgen_object_clone_ref,
__wbindgen_is_undefined,
__wbindgen_string_get,
__wbindgen_number_new,
__wbindgen_is_string,
__wbindgen_is_function,
__wbindgen_number_get,
__wbindgen_is_null,
__wbindgen_boolean_get,
__wbindgen_json_serialize,
__wbindgen_error_new,
__wbg_new_abda76e883ba8a5f,
__wbg_stack_658279fe44541cf6,
__wbg_error_f851667af71bcfc6,
__wbindgen_bigint_from_i64,
__wbindgen_bigint_from_u64,
__wbindgen_is_object,
__wbindgen_jsval_loose_eq,
__wbg_String_91fba7ded13ba54c,
__wbg_set_20cbc34131e76824,
__wbg_crypto_e1d53a1d73fb10b8,
__wbg_process_038c26bf42b093f8,
__wbg_versions_ab37218d2f0b24a8,
__wbg_node_080f4b19d15bc1fe,
__wbg_msCrypto_6e7d3e1f92610cbb,
__wbg_require_78a3dcfbdba9cbce,
__wbg_getRandomValues_805f1c3d65988a5a,
__wbg_randomFillSync_6894564c2c334c42,
__wbg_log_7bb108d119bafbc1,
__wbg_log_d047cf0648d2678e,
__wbg_get_27fe3dac1c4d0224,
__wbg_length_e498fbc24f9c1d4f,
__wbg_new_b525de17f44a8943,
__wbg_newnoargs_2b8b6bd7753c76ba,
__wbg_next_b7d530c04fd8b217,
__wbg_next_88560ec06a094dea,
__wbg_done_1ebec03bbd919843,
__wbg_value_6ac8da5cc5b3efda,
__wbg_iterator_55f114446221aa5a,
__wbg_get_baf4855f9a986186,
__wbg_call_95d1ea488d03e4e8,
__wbg_new_f9876326328f45ed,
__wbg_length_ea0846e494e3b16e,
__wbg_self_e7c1f827057f6584,
__wbg_window_a09ec664e14b1b81,
__wbg_globalThis_87cbb8506fecf3a9,
__wbg_global_c85a9259e621f3db,
__wbg_set_17224bc548dd1d7b,
__wbg_from_67ca20fa722467e6,
__wbg_isArray_39d28997bf6b96b4,
__wbg_push_49c286f04dd3bf59,
__wbg_unshift_06a94bcbcb492eb3,
__wbg_instanceof_ArrayBuffer_a69f02ee4c4f5065,
__wbg_new_15d3966e9981a196,
__wbg_call_9495de66fdbe016b,
__wbg_call_99043a1e2a9e5916,
__wbg_instanceof_Date_e353425d719aa266,
__wbg_getTime_7c59072d1651a3cf,
__wbg_new_f127e324c1313064,
__wbg_instanceof_Object_f5a826c4da0d4a94,
__wbg_assign_b0b6530984f36574,
__wbg_defineProperty_4926f24c724d5310,
__wbg_entries_4e1315b774245952,
__wbg_freeze_4dcdbf0b5d9b50f4,
__wbg_keys_60443f4f867207f9,
__wbg_values_7444c4c2ccefdc9b,
__wbg_concat_040af6c9ba38dd98,
__wbg_slice_47202b1d012cdc55,
__wbg_for_9a885d0d6d415e40,
__wbg_toString_7a3e0cd68ea2a337,
__wbg_buffer_cf65c07de34b9a08,
__wbg_newwithbyteoffsetandlength_9fb2f11355ecadf5,
__wbg_new_537b7341ce90bb31,
__wbg_set_17499e8aa4003ebd,
__wbg_length_27a2afe8ab42b09f,
__wbg_instanceof_Uint8Array_01cebe79ca606cca,
__wbg_newwithlength_b56c882b57805732,
__wbg_subarray_7526649b91a252a6,
__wbg_apply_5435e78b95a524a6,
__wbg_deleteProperty_31090878b92a7c0e,
__wbg_ownKeys_9efe69be404540aa,
__wbg_set_6aa458a4ebdb65cb,
__wbindgen_debug_string,
__wbindgen_throw,
__wbindgen_memory
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
After npm installing @automerge/automerge
Copy:
automerge_wasm_bg.js
automerge_wasm_bg.wasm
in:
node_modules/@automerge/automerge-wasm/bundle/automerge_wasm.js
tosrc
Then we need to find the js imports that the wasm file uses. In src create a blank
index.html
and start a webserver:cd src npx http-server
In Chrome visit
http://localhost:8080/index.html
(or whatever) and open the inspector and in the console paste the following:You should find a structure like this in you clipboard:
We need to map it to an object with this structure that can be placed at the bottom of
./automerge_wasm_bg.js
:You can get the list of function names like this:
and then just paste:
Next we need to remove the use of
FinalizationRegistry
as CloudFlare Workers does not support this. Comment out the following lines in./automerge_wasm_bg.js
.and
You can also do this by recompiling the Rust removing the
--weak-ref
flag from where it occurs in thepackage.json
.You worker should now deploy and run.
Note you need to manually free memory:
The API for
@automerge/automerge-wasm
is lower level than@automerge/automerge
docs are here:https://github.com/automerge/automerge/tree/main/rust/automerge-wasm