From 2d5370963019e01e71f8f22c18dd01fff9ccc921 Mon Sep 17 00:00:00 2001 From: Rizky Date: Wed, 18 Oct 2023 23:49:34 +0700 Subject: [PATCH] adding brotli sync ws --- app/srv/api/comp-create.ts | 182 ++++++++++++++ app/srv/package.json | 1 + app/srv/ws/handler.ts | 29 ++- app/web/.parcelrc | 4 + app/web/package.json | 2 + app/web/src/base/page/live.tsx | 1 + app/web/src/render/live/live.tsx | 7 +- app/web/src/render/live/logic/global.ts | 5 + app/web/src/render/live/logic/init.tsx | 3 +- app/web/src/render/live/logic/route.ts | 5 - app/web/src/render/live/logic/ws-sync.ts | 28 +++ app/web/src/render/live/logic/ws.ts | 297 ----------------------- bun.lockb | Bin 292184 -> 243544 bytes pkgs/core/build.ts | 3 +- 14 files changed, 256 insertions(+), 311 deletions(-) create mode 100644 app/srv/api/comp-create.ts create mode 100644 app/web/src/render/live/logic/ws-sync.ts delete mode 100644 app/web/src/render/live/logic/ws.ts diff --git a/app/srv/api/comp-create.ts b/app/srv/api/comp-create.ts new file mode 100644 index 00000000..6f775b16 --- /dev/null +++ b/app/srv/api/comp-create.ts @@ -0,0 +1,182 @@ +import { syncronize } from "y-pojo"; +import { IItem, MItem } from "../../web/src/utils/types/item"; +import { eg } from "../ws/edit/edit-global"; + +export const _ = { + url: "/comp-create", + async api(arg: { + site_id: string; + page_id?: string; + item_id: string; + comp_id?: string; + group_id?: string; + }) { + const { page_id, site_id, item_id, comp_id, group_id } = arg; + let element = undefined as MItem | undefined; + const walk = (el: MItem): MItem | undefined => { + if (el.get("id") === item_id) { + return el; + } + let final = null; + + const props = el.get("component")?.get("props"); + if (props) { + props.forEach((e) => { + const content = e.get("content"); + if (content) { + const result = walk(content); + if (result) final = result; + } + }); + } + + const childs = el.get("childs"); + childs?.forEach((e: any) => { + const result = walk(e); + if (result) final = result; + }); + if (final) return final; + }; + + const page = eg.edit.page[page_id || ""]; + if (page_id) { + if (page) { + const root = page.doc.getMap("map").get("content_tree"); + if (root) { + element = walk(root as any); + } + } + } + + const comp = eg.edit.comp[comp_id || ""]; + if (comp_id) { + if (comp) { + const root = comp.doc.getMap("map").get("content_tree"); + if (root) { + element = walk(root as any); + } + } + } + + let gid = group_id; + if (!gid) { + let group = await db.component_group.findFirst({ + where: { + component_site: { + some: { + id_site: site_id, + }, + }, + name: { + not: { + equals: "__TRASH__", + }, + }, + }, + select: { + id: true, + name: true, + }, + }); + + if (!group) { + group = await db.component_group.create({ + data: { + name: "All", + component_site: { + create: { + id_site: site_id, + }, + }, + }, + select: { + id: true, + name: true, + }, + }); + } + gid = group.id; + } + if (element) { + const newcomp = await db.component.create({ + data: { + name: element.get("name") || "", + content_tree: element.toJSON(), + component_group: { + connect: { + id: gid, + }, + }, + }, + select: { + content_tree: true, + id: true, + }, + }); + if (newcomp) { + const content_tree = { + ...(newcomp.content_tree as any), + component: { + id: newcomp.id, + group: { + id: gid, + }, + }, + }; + await db.component.update({ + data: { + content_tree: content_tree, + }, + where: { + id: newcomp.id, + }, + }); + + const json = element.toJSON() as IItem; + syncronize( + element as any, + { + ...json, + childs: [], + component: { + id: newcomp.id, + name: "", + props: {}, + }, + } as IItem + ); + + if (comp_id) { + await db.component.update({ + where: { + id: comp_id, + }, + data: { + content_tree: comp.doc + .getMap("map") + .get("content_tree") + ?.toJSON(), + }, + }); + } else if (page && page.id) { + await db.page.update({ + where: { + id: page.id, + }, + data: { + content_tree: page.doc + .getMap("map") + .get("content_tree") + ?.toJSON(), + }, + }); + } + + return { + id: newcomp.id, + group_id: gid, + }; + } + } + }, +}; diff --git a/app/srv/package.json b/app/srv/package.json index 53ea65ac..ed795ab9 100644 --- a/app/srv/package.json +++ b/app/srv/package.json @@ -7,6 +7,7 @@ "@node-rs/argon2": "^1.5.2", "@paralleldrive/cuid2": "^2.2.2", "@types/mime-types": "^2.1.2", + "brotli-wasm": "^2.0.1", "esbuild": "^0.19.4", "lz-string": "^1.5.0", "mime-types": "^2.1.35", diff --git a/app/srv/ws/handler.ts b/app/srv/ws/handler.ts index d0bcf87e..06815e3d 100644 --- a/app/srv/ws/handler.ts +++ b/app/srv/ws/handler.ts @@ -1,15 +1,16 @@ import { createId } from "@paralleldrive/cuid2"; +import brotliPromise from "brotli-wasm"; import { WebSocketHandler } from "bun"; +import { decompress } from "lz-string"; import { WSData } from "../../../pkgs/core/server/create"; import { WS_MSG } from "../../web/src/utils/types/ws"; -import { eg } from "./edit/edit-global"; -import { decompress } from "lz-string"; -import { getPage } from "./edit/action/get-page"; -import { getComp } from "./edit/action/get-comp"; -import { svLocal } from "./edit/action/sv-local"; import { diffLocal } from "./edit/action/diff-local"; +import { getComp } from "./edit/action/get-comp"; +import { getPage } from "./edit/action/get-page"; +import { svLocal } from "./edit/action/sv-local"; import { svdiffRemote } from "./edit/action/svdiff-remote"; import { redo, undo } from "./edit/action/undo-redo"; +import { eg } from "./edit/edit-global"; eg.edit = { site: {}, @@ -21,7 +22,25 @@ const site = { saveTimeout: null as any, }; +const brotli = await brotliPromise; export const wsHandler: Record> = { + "/live": { + async open(ws) { + ws.send( + brotli.compress( + Buffer.from( + JSON.stringify( + await db.page.findFirst({ + where: { id: "324dde34-1e01-46ff-929c-124e5e01f585" }, + }) + ) + ), + { quality: 11 } + ) + ); + }, + message(ws, message) {}, + }, "/edit": { open(ws) { eg.edit.ws.set(ws, { diff --git a/app/web/.parcelrc b/app/web/.parcelrc index 7e326d88..d135bff9 100644 --- a/app/web/.parcelrc +++ b/app/web/.parcelrc @@ -6,6 +6,10 @@ "...", "@tinijs/parcel-reporter-copy-public" ], + "packagers": { + "*.wasm": "@parcel/packager-wasm" + }, + "transformers": { "*.wasm": [ "...", diff --git a/app/web/package.json b/app/web/package.json index 71a1c3cc..cf030f33 100644 --- a/app/web/package.json +++ b/app/web/package.json @@ -11,9 +11,11 @@ "@minoru/react-dnd-treeview": "^3.4.4", "@monaco-editor/react": "^4.6.0", "@paralleldrive/cuid2": "2.2.2", + "@parcel/packager-wasm": "^2.10.0", "@parcel/service-worker": "^2.10.0", "@swc/wasm-web": "1.3.94-nightly-20231014.1", "algoliasearch": "^4.20.0", + "brotli-dec-wasm": "^2.0.1", "date-fns": "^2.30.0", "dbgen": "workspace:*", "downshift": "^8.2.2", diff --git a/app/web/src/base/page/live.tsx b/app/web/src/base/page/live.tsx index 81f3c19d..4adea67e 100644 --- a/app/web/src/base/page/live.tsx +++ b/app/web/src/base/page/live.tsx @@ -25,6 +25,7 @@ export default page({ domain_or_siteid={params.domain} pathname={pathname} loader={devLoader} + liveSync /> ); }, diff --git a/app/web/src/render/live/live.tsx b/app/web/src/render/live/live.tsx index 768a1d18..31c6b72a 100644 --- a/app/web/src/render/live/live.tsx +++ b/app/web/src/render/live/live.tsx @@ -5,12 +5,14 @@ import { LPage } from "./elements/l-page"; import { LiveGlobal, Loader } from "./logic/global"; import { initLive, w } from "./logic/init"; import { preload, routeLive } from "./logic/route"; +import { liveSyncWS } from "./logic/ws-sync"; export const Live: FC<{ domain_or_siteid: string; pathname: string; loader: Loader; -}> = ({ domain_or_siteid, pathname, loader }) => { + liveSync?: boolean; +}> = ({ domain_or_siteid, pathname, loader, liveSync }) => { const p = useGlobal(LiveGlobal, "LIVE"); p.loader = loader; @@ -55,6 +57,9 @@ export const Live: FC<{ }, [p.site.responsive]); if (p.status === "init") { + if (liveSync) { + liveSyncWS(p); + } initLive(p, domain_or_siteid); } diff --git a/app/web/src/render/live/logic/global.ts b/app/web/src/render/live/logic/global.ts index 4f0f7847..48aaa3a5 100644 --- a/app/web/src/render/live/logic/global.ts +++ b/app/web/src/render/live/logic/global.ts @@ -67,6 +67,11 @@ export type Loader = { comp: (p: PG, id: string) => Promise; }; export const LiveGlobal = { + liveSync: { + ws: null as null | WebSocket, + init: false, + decompress: null as null | ((buf: Uint8Array) => Uint8Array), + }, prod: false, loader: undefined as unknown as Loader, mode: "" as "desktop" | "mobile", diff --git a/app/web/src/render/live/logic/init.tsx b/app/web/src/render/live/logic/init.tsx index b4f08f99..f25f590d 100644 --- a/app/web/src/render/live/logic/init.tsx +++ b/app/web/src/render/live/logic/init.tsx @@ -4,8 +4,7 @@ import { type apiClient } from "web-utils"; import { createAPI, createDB, - initApi, - reloadDBAPI, + initApi } from "../../../utils/script/init-api"; import importModule from "../../editor/tools/dynamic-import"; import { LSite, PG } from "./global"; diff --git a/app/web/src/render/live/logic/route.ts b/app/web/src/render/live/logic/route.ts index 0c270764..1e0466fb 100644 --- a/app/web/src/render/live/logic/route.ts +++ b/app/web/src/render/live/logic/route.ts @@ -1,12 +1,8 @@ -import { page } from "dbgen"; -import { validate } from "uuid"; import { w } from "../../../utils/types/general"; -import { WS_MSG_GET_PAGE } from "../../../utils/types/ws"; import importModule from "../../editor/tools/dynamic-import"; import { loadComponent } from "./comp"; import { LPage, PG } from "./global"; import { rebuildTree } from "./tree-logic"; -import { liveWS, wsend } from "./ws"; export const routeLive = (p: PG, pathname: string) => { if (p.status !== "loading" && p.status !== "not-found") { @@ -127,7 +123,6 @@ const loadPage = async (p: PG, id: string) => { content_tree: page.content_tree as any, js: (page as any).js_compiled as any, }; - console.log(p.pages[page.id]); const cur = p.pages[page.id]; if (cur && cur.content_tree) { diff --git a/app/web/src/render/live/logic/ws-sync.ts b/app/web/src/render/live/logic/ws-sync.ts new file mode 100644 index 00000000..e127dcf4 --- /dev/null +++ b/app/web/src/render/live/logic/ws-sync.ts @@ -0,0 +1,28 @@ +import { PG } from "./global"; + +export const liveSyncWS = async (p: PG) => { + if (!p.liveSync.init) { + p.liveSync.init = true; + + if (!p.liveSync.decompress) { + const brotliPromise = (await import("brotli-dec-wasm")).default; + p.liveSync.decompress = (await brotliPromise).decompress; + } + const decoder = new TextDecoder(); + const url = new URL(location.href); + url.pathname = "/live"; + url.protocol = url.protocol === "http:" ? "ws:" : "wss:"; + + const ws = new WebSocket(url); + p.liveSync.ws = ws; + ws.onmessage = async (e) => { + const decompress = p.liveSync.decompress; + if (decompress) { + const raw = e.data as Blob; + const extracted = decompress(new Uint8Array(await raw.arrayBuffer())); + const json = JSON.parse(decoder.decode(extracted)); + console.log(json); + } + }; + } +}; diff --git a/app/web/src/render/live/logic/ws.ts b/app/web/src/render/live/logic/ws.ts deleted file mode 100644 index e42886d2..00000000 --- a/app/web/src/render/live/logic/ws.ts +++ /dev/null @@ -1,297 +0,0 @@ -import throttle from "lodash.throttle"; -import { compress, decompress } from "lz-string"; -import * as Y from "yjs"; -import { createAPI, createDB } from "../../../utils/script/init-api"; -import { MPage } from "../../../utils/types/general"; -import { - WS_MSG, - WS_MSG_DIFF_LOCAL, - WS_MSG_SET_PAGE, - WS_MSG_SVDIFF_REMOTE, - WS_MSG_SV_LOCAL, -} from "../../../utils/types/ws"; -import importModule from "../../editor/tools/dynamic-import"; -import { PG } from "./global"; -import { rebuildTree } from "./tree-logic"; -import { CompDoc } from "../../../base/global/content-editor"; -import { IItem } from "../../../utils/types/item"; -import { scanComponent } from "./comp"; -import { PRASI_COMPONENT } from "../../../utils/types/render"; - -export const liveWS = async (p: PG) => { - return new Promise(async (resolve) => { - const wsurl = new URL(serverurl); - wsurl.protocol = wsurl.protocol.startsWith("http:") ? "ws:" : "wss:"; - - if ( - p.wsRetry.localIP && - ["localhost", "127.0.0.1"].includes(wsurl.hostname) - ) { - const ips = await api.local_ip(); - wsurl.hostname = ips[0]; - } - - wsurl.pathname = "/edit"; - - if (p.ws && p.ws.readyState === p.ws.OPEN) { - resolve(); - return; - } - p.ws = new WebSocket(wsurl); - const ws = p.ws; - - if (ws) { - const retry = (e: any) => { - if (p.wsRetry.disabled) return; - - p.wsRetry.reconnecting = true; - p.wsRetry.localIP = true; - if (p.wsRetry.fast) { - liveWS(p); - } else { - setTimeout(() => { - console.log("Reconnecting..."); - liveWS(p); - }, 2000); - } - }; - ws.addEventListener("error", retry); - ws.addEventListener("close", retry); - ws.addEventListener("open", () => { - if (p.wsRetry.reconnecting) { - p.wsRetry.reconnecting = false; - console.log("Connected"); - } - resolve(); - }); - ws.addEventListener("message", async (e) => { - const msg = JSON.parse(e.data) as WS_MSG; - - switch (msg.type) { - case "get_page": - break; - case "set_page": - if (p.mpage) { - p.mpage.destroy(); - } - p.mpage = await setPage(msg); - p.mpage.on( - "update", - throttle((e, origin) => { - if (p.mpage) { - p.page = p.mpage.getMap("map").toJSON() as any; - - console.clear(); - console.log( - `🔥 Page updated: ${p.page - ?.url} ${new Date().toLocaleString()}` - ); - } - }) - ); - p.page = p.mpage.getMap("map").toJSON() as any; - - if (p.mpageLoaded) { - p.mpageLoaded(p.mpage); - p.mpageLoaded = null; - } - break; - case "sv_local": - svLocal({ p, bin: extract(msg.sv_local), msg }); - break; - case "svd_remote": - svdRemote({ p, bin: extract(msg.diff_remote), msg }); - rebuildTree(p, { note: "page-changed" }); - break; - case "diff_local": - if (msg.mode === "page") { - Y.applyUpdate(p.mpage as any, extract(msg.diff_local), "remote"); - } - if (msg.mode === "comp") { - Y.applyUpdate( - p.comps.doc[msg.id] as any, - extract(msg.diff_local), - "remote" - ); - } - break; - case "set_comp": - { - const callback = p.comps.resolve[msg.comp_id]; - if (callback) { - p.comps.doc[msg.comp_id] = new Y.Doc() as CompDoc; - Y.applyUpdate( - p.comps.doc[msg.comp_id] as any, - extract(msg.changes), - "remote" - ); - setTimeout(() => { - p.comps.doc[msg.comp_id].on( - "update", - throttle((e, origin) => { - if (origin === "remote") { - return; - } - - const doc = p.comps.doc[msg.comp_id]; - if (doc) { - if (!origin && origin !== "updated_at") { - const id = doc.getMap("map").get("id"); - if (id) { - doc.transact(() => { - doc - .getMap("map") - .set("updated_at", new Date().toISOString()); - }, "updated_at"); - - const sendmsg: WS_MSG_SV_LOCAL = { - type: "sv_local", - mode: "comp", - id, - sv_local: compress( - Y.encodeStateVector(doc as any).toString() - ), - }; - wsend(p, JSON.stringify(sendmsg)); - } - } - } - }, 200) - ); - }, 500); - const comp = p.comps.doc[msg.comp_id] - .getMap("map") - .get("content_tree") - ?.toJSON() as IItem; - - const ids = new Set(); - scanComponent(comp, ids); - - callback( - p.comps.doc[msg.comp_id] - .getMap("map") - .toJSON() as PRASI_COMPONENT - ); - delete p.comps.pending[msg.comp_id]; - delete p.comps.resolve[msg.comp_id]; - } - } - break; - case "undo": - case "redo": - case "new_comp": - case "get_comp": - } - }); - ws.addEventListener("open", () => { - p.wsRetry.disabled = false; - }); - } - }); -}; - -const extract = (str: string) => { - return Uint8Array.from( - decompress(str) - .split(",") - .map((x) => parseInt(x, 10)) - ); -}; - -const svLocal = async (arg: { - bin: Uint8Array; - msg: { - id: string; - mode: string; - type: string; - }; - p: PG; -}) => { - const { bin, msg, p } = arg; - const { id, mode, type } = msg; - - let doc = null as any; - if (mode === "page") doc = p.mpage; - if (mode === "comp") doc = p.comps.doc[id]; - if (!doc) return; - - const diff_remote = Y.encodeStateAsUpdate(doc, bin); - const sv_remote = Y.encodeStateVector(doc); - - const sendmsg: any = { - diff_remote: compress(diff_remote.toString()), - sv_remote: compress(sv_remote.toString()), - id: id, - mode: mode, - type: type, - }; - await wsend(p, JSON.stringify(sendmsg)); -}; - -const svdRemote = async (arg: { - bin: Uint8Array; - msg: WS_MSG_SVDIFF_REMOTE; - p: PG; -}) => { - const { bin, msg, p } = arg; - const { id, mode, type } = msg; - const sv_remote = Uint8Array.from( - decompress(msg.sv_remote) - .split(",") - .map((x) => parseInt(x, 10)) - ); - const diff_remote = Uint8Array.from( - decompress(msg.diff_remote) - .split(",") - .map((x) => parseInt(x, 10)) - ); - - const sendDoc = async (doc: any) => { - const diff_local = Y.encodeStateAsUpdate(doc as any, sv_remote); - Y.applyUpdate(doc as any, diff_remote, "local"); - const sendmsg: WS_MSG_DIFF_LOCAL = { - type: "diff_local", - mode: msg.mode, - id: msg.id, - diff_local: compress(diff_local.toString()), - }; - await wsend(p, JSON.stringify(sendmsg)); - }; - - let doc = null as any; - if (mode === "page") doc = p.mpage; - if (mode === "comp") doc = p.comps.doc[id]; - if (!doc) return; - sendDoc(doc); -}; - -export const wsend = async (local: PG, payload: string) => { - const ws = local.ws; - if (ws) { - if (ws.readyState !== ws.OPEN) { - await new Promise((resolve) => { - const ival = setInterval(() => { - if (ws.readyState === ws.OPEN) { - clearInterval(ival); - resolve(); - } - }, 50); - }); - } - - ws.send(payload); - } -}; - -const setPage = async (msg: WS_MSG_SET_PAGE) => { - const page = Uint8Array.from( - decompress(msg.changes) - .split(",") - .map((x) => parseInt(x, 10)) - ); - - const doc = new Y.Doc(); - Y.applyUpdate(doc as any, page, "remote"); - - return doc as unknown as MPage; -}; diff --git a/bun.lockb b/bun.lockb index 319a8bfb4c6855f9ff4358a4ba539f3c3f864872..a358c1b0854d0e3bcb26cebc3f6bfc3fa4013104 100755 GIT binary patch delta 53401 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�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 diff --git a/pkgs/core/build.ts b/pkgs/core/build.ts index b7e25903..60997759 100644 --- a/pkgs/core/build.ts +++ b/pkgs/core/build.ts @@ -11,7 +11,8 @@ const args = [ dir.path("node_modules/.bin/parcel"), "build", "./src/index.tsx", - "--no-optimize", + // "--no-optimize", + "--no-scope-hoist", "--dist-dir", dir.path(`app/static`), ];