import { BrowserWebSocketClientAdapter } from "npm:@automerge/automerge-repo-network-websocket";
import { Repo } from "npm:@automerge/automerge-repo/slim";
import { automergeWasmBase64 } from "npm:@automerge/automerge/automerge.wasm.base64.js";
import * as automerge from "npm:@automerge/automerge/slim";
await automerge.next.initializeBase64Wasm(automergeWasmBase64);
export default async function(req: Request): Promise<Response> {
type DocType = { ideas: Array<automerge.Text> };
let doc1 = automerge.init<DocType>();
doc1 = automerge.change(doc1, d => {
d.ideas = [new automerge.Text("an immutable document")];
});
let doc2 = automerge.init<DocType>();
doc2 = automerge.merge(doc2, automerge.clone(doc1));
doc2 = automerge.change<DocType>(doc2, d => {
d.ideas.push(new automerge.Text("which records its history"));
});
doc1 = automerge.merge(doc1, automerge.clone(doc2));
doc1 = automerge.change(doc1, d => {
d.ideas[0].deleteAt(13, 8);
d.ideas[0].insertAt(13, "object");
});
let doc3 = automerge.merge(doc1, doc2);
return Response.json({ doc1, doc2, doc3 });
}