At this point just aaagh
This commit is contained in:
parent
7e83c817ec
commit
2c9f466872
4 changed files with 349 additions and 72 deletions
|
|
@ -9,13 +9,18 @@
|
|||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@collabs/collabs": "^0.13.4",
|
||||
"@collabs/ws-client": "^0.13.4",
|
||||
"@fontsource/fira-mono": "^4.5.10",
|
||||
"@neoconfetti/svelte": "^1.0.0",
|
||||
"@sveltejs/adapter-auto": "^3.0.0",
|
||||
"@sveltejs/adapter-node": "^4.0.1",
|
||||
"@sveltejs/kit": "^2.0.0",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.0",
|
||||
"@types/color-hash": "^1.0.5",
|
||||
"@types/lodash": "^4.14.202",
|
||||
"@types/quill": "^2.0.14",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"svelte": "^4.2.7",
|
||||
"svelte-check": "^3.6.0",
|
||||
"tslib": "^2.4.1",
|
||||
|
|
@ -27,6 +32,8 @@
|
|||
"type": "module",
|
||||
"dependencies": {
|
||||
"@steeze-ui/svelte-icon": "^1.5.0",
|
||||
"color-hash": "^2.0.2",
|
||||
"lodash": "^4.17.21",
|
||||
"loro-crdt": "^0.11.1",
|
||||
"prosemirror-commands": "^1.5.2",
|
||||
"prosemirror-dropcursor": "^1.8.1",
|
||||
|
|
@ -38,7 +45,9 @@
|
|||
"prosemirror-schema-basic": "^1.2.2",
|
||||
"prosemirror-schema-list": "^1.3.0",
|
||||
"prosemirror-state": "^1.4.3",
|
||||
"prosemirror-transform": "^1.8.0",
|
||||
"prosemirror-view": "^1.33.1",
|
||||
"quill": "^1.3.7"
|
||||
"quill": "^1.3.7",
|
||||
"uuid": "^9.0.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,96 +1,199 @@
|
|||
<script lang="ts">
|
||||
import type { Loro, LoroText } from "loro-crdt";
|
||||
import { onMount } from "svelte";
|
||||
// import { Publisher } from "./peritext/pubsub"
|
||||
// import type { Change } from "./peritext/micromerge"
|
||||
// import type { Editor } from "./peritext/bridge"
|
||||
// import { Mark } from "prosemirror-model"
|
||||
// import Micromerge from "./peritext/micromerge"
|
||||
|
||||
|
||||
import { EditorView } from "prosemirror-view";
|
||||
|
||||
|
||||
import { EditorState, TextSelection, Plugin } from "prosemirror-state";
|
||||
import { DOMParser, DOMSerializer, Node, Schema } from "prosemirror-model";
|
||||
import { richTextSchema, EXPAND_CONFIG } from "./prosemirror/schema";
|
||||
|
||||
import { keymap } from "prosemirror-keymap";
|
||||
import { baseKeymap } from "prosemirror-commands";
|
||||
import { history, redo, undo } from "prosemirror-history";
|
||||
import { dropCursor } from "prosemirror-dropcursor"
|
||||
import { gapCursor } from "prosemirror-gapcursor"
|
||||
|
||||
import { richTextKeyMapPlugin } from "./prosemirror/keymap";
|
||||
// import {createEditor, initializeDocs} from "./peritext/bridge"
|
||||
|
||||
import menu from "./menu";
|
||||
|
||||
// import Hero from "$lib/Hero.svelte";
|
||||
let editorNode: Element;
|
||||
let loroState: Loro | null = null;
|
||||
onMount(() => {
|
||||
let view: EditorView;
|
||||
(async () => {
|
||||
let b = import(`loro-crdt`);
|
||||
// import Hero from "$lib/Hero.svelte";
|
||||
let editorNode: Element;
|
||||
let changesNode: Element;
|
||||
let marksNode: Element;
|
||||
// const publisher = new Publisher<Array<Change>>()
|
||||
|
||||
const Loro = (await b).Loro
|
||||
loroState = new Loro();
|
||||
// const editors: { [key: string]: Editor } = {}
|
||||
|
||||
// const renderMarks = (domNode: Element, marks: readonly Mark[]): void => {
|
||||
// domNode.innerHTML = marks
|
||||
// .map(m => `• ${m.type.name} ${Object.keys(m.attrs).length !== 0 ? JSON.stringify(m.attrs) : ""}`)
|
||||
// .join("<br/>")
|
||||
// }
|
||||
|
||||
// const aliceDoc = new Micromerge("alice")
|
||||
|
||||
|
||||
// const aliceNode = document.querySelector("#alice")
|
||||
// const aliceEditor = aliceNode?.querySelector(".editor")
|
||||
// const aliceChanges = aliceNode?.querySelector(".changes")
|
||||
// const aliceMarks = aliceNode?.querySelector(".marks")
|
||||
|
||||
|
||||
|
||||
for (const editor of Object.values(editors)) {
|
||||
editor.queue.drop()
|
||||
}
|
||||
|
||||
// Add a button for syncing the two editors
|
||||
// document.querySelector("#sync")?.addEventListener("click", () => {
|
||||
// for (const editor of Object.values(editors)) {
|
||||
// editor.queue.flush()
|
||||
// }
|
||||
// })
|
||||
|
||||
// import type { Loro, LoroText } from "loro-crdt";
|
||||
import { onMount } from "svelte";
|
||||
|
||||
// import { EditorView } from "prosemirror-view";
|
||||
|
||||
// import { EditorState, TextSelection, Plugin } from "prosemirror-state";
|
||||
// import { DOMParser, DOMSerializer, Node, Schema } from "prosemirror-model";
|
||||
// import { richTextSchema, EXPAND_CONFIG } from "./prosemirror/schema";
|
||||
|
||||
// import { keymap } from "prosemirror-keymap";
|
||||
// import { baseKeymap } from "prosemirror-commands";
|
||||
// import { history, redo, undo } from "prosemirror-history";
|
||||
import { dropCursor } from "prosemirror-dropcursor";
|
||||
import { gapCursor } from "prosemirror-gapcursor";
|
||||
|
||||
// import { richTextKeyMapPlugin } from "./prosemirror/keymap";
|
||||
|
||||
// let loroState: Loro | null = null;
|
||||
// onMount(() => {
|
||||
// let view: Editor;
|
||||
// (async () => {
|
||||
// // let b = import(`loro-crdt`);
|
||||
|
||||
// // const Loro = (await b).Loro;
|
||||
// // loroState = new Loro();
|
||||
|
||||
// // let pkgbridge = import(`./peritext/bridge`)
|
||||
// // const { createEditor, initializeDocs } = await pkgbridge
|
||||
|
||||
|
||||
|
||||
let state = EditorState.create({
|
||||
schema: richTextSchema,
|
||||
// doc,
|
||||
// selection,
|
||||
plugins: [
|
||||
// history(),
|
||||
keymap({}), // {"Mod-z": undo, "Mod-y": redo, "Mod-Shift-z": redo}
|
||||
keymap(baseKeymap),
|
||||
dropCursor(),
|
||||
gapCursor(),
|
||||
richTextKeyMapPlugin,
|
||||
menu
|
||||
// ...plugins
|
||||
]});
|
||||
// initializeDocs(
|
||||
// [aliceDoc],
|
||||
// [
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "insert",
|
||||
// index: 0,
|
||||
// values: "This is the Peritext editor demo. Press sync to synchronize the editors. Ctrl-B for bold, Ctrl-i for italic, Ctrl-k for link, Ctrl-e for comment".split(
|
||||
// "",
|
||||
// ),
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "strong",
|
||||
// startIndex: 84,
|
||||
// endIndex: 88,
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "em",
|
||||
// startIndex: 100,
|
||||
// endIndex: 107,
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "link",
|
||||
// attrs: { url: "http://inkandswitch.com" },
|
||||
// startIndex: 120,
|
||||
// endIndex: 124,
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "comment",
|
||||
// attrs: { id: "1" },
|
||||
// startIndex: 137,
|
||||
// endIndex: 144,
|
||||
// },
|
||||
// ],
|
||||
// )
|
||||
|
||||
view = new EditorView(editorNode, {
|
||||
state,
|
||||
nodeViews: {
|
||||
// image(node, view, getPos) {
|
||||
// return new ImageView(node, view, getPos);
|
||||
// }
|
||||
}
|
||||
});
|
||||
})();
|
||||
// view = createEditor({
|
||||
// actorId: "alice",
|
||||
// editorNode,
|
||||
// changesNode,
|
||||
// doc: aliceDoc,
|
||||
// publisher,
|
||||
|
||||
return () => {
|
||||
if (view) {
|
||||
view.destroy()
|
||||
}
|
||||
};
|
||||
});
|
||||
// plugins: [
|
||||
// // history(),
|
||||
// // keymap({}), // {"Mod-z": undo, "Mod-y": redo, "Mod-Shift-z": redo}
|
||||
// // keymap(baseKeymap),
|
||||
// dropCursor(),
|
||||
// gapCursor(),
|
||||
// // richTextKeyMapPlugin,
|
||||
// menu,
|
||||
// // ...plugins
|
||||
// ],
|
||||
// editable: true,
|
||||
// handleClickOn: (view, pos, node, nodePos, event, direct) => {
|
||||
// // Prosemirror calls this once per node that overlaps w/ the clicked pos.
|
||||
// // We only want to run our callback once, on the innermost clicked node.
|
||||
// if (!direct) return false
|
||||
|
||||
// const marksAtPosition = view.state.doc.resolve(pos).marks()
|
||||
// renderMarks(marksNode, marksAtPosition)
|
||||
// return false
|
||||
// },
|
||||
// })
|
||||
// // let state = EditorState.create({
|
||||
// // schema: richTextSchema,
|
||||
// // // doc,
|
||||
// // // selection,
|
||||
// // });
|
||||
|
||||
// // view = new EditorView(editorNode, {
|
||||
// // state,
|
||||
// // nodeViews: {
|
||||
// // // image(node, view, getPos) {
|
||||
// // // return new ImageView(node, view, getPos);
|
||||
// // // }
|
||||
// // },
|
||||
// // });
|
||||
// })();
|
||||
|
||||
// return () => {
|
||||
// if (view) {
|
||||
// view.view.destroy()
|
||||
// }
|
||||
// };
|
||||
// });
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<div class="content card edge">
|
||||
<!-- <div>Test</div> -->
|
||||
<!-- {#if state}
|
||||
<!-- <div>Test</div> -->
|
||||
<!-- {#if state}
|
||||
<Editor state={state} document={document}/>
|
||||
{/if} -->
|
||||
<div bind:this={editorNode}></div>
|
||||
<div bind:this={editorNode}></div>
|
||||
</div>
|
||||
|
||||
<div bind:this={changesNode}></div>
|
||||
<div bind:this={marksNode}></div>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
.content {
|
||||
margin: 48px auto;
|
||||
max-width: calc(100% - 2*var(--spacing));
|
||||
width: 520px;
|
||||
max-width: calc(100% - 2 * var(--spacing));
|
||||
width: 520px;
|
||||
padding: var(--spacing);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media screen and (min-width: 540px) {
|
||||
@media screen and (min-width: 540px) {
|
||||
.content {
|
||||
margin: 96px auto;
|
||||
margin: 96px auto;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
:global(.ProseMirror) {
|
||||
margin: auto;
|
||||
|
|
|
|||
1
packages/loro-demo/src/routes/+page.server.ts
Normal file
1
packages/loro-demo/src/routes/+page.server.ts
Normal file
|
|
@ -0,0 +1 @@
|
|||
export const ssr = false;
|
||||
166
pnpm-lock.yaml
generated
166
pnpm-lock.yaml
generated
|
|
@ -13,6 +13,12 @@ importers:
|
|||
'@steeze-ui/svelte-icon':
|
||||
specifier: ^1.5.0
|
||||
version: 1.5.0(svelte@4.2.8)
|
||||
color-hash:
|
||||
specifier: ^2.0.2
|
||||
version: 2.0.2
|
||||
lodash:
|
||||
specifier: ^4.17.21
|
||||
version: 4.17.21
|
||||
loro-crdt:
|
||||
specifier: ^0.11.1
|
||||
version: 0.11.1
|
||||
|
|
@ -46,13 +52,25 @@ importers:
|
|||
prosemirror-state:
|
||||
specifier: ^1.4.3
|
||||
version: 1.4.3
|
||||
prosemirror-transform:
|
||||
specifier: ^1.8.0
|
||||
version: 1.8.0
|
||||
prosemirror-view:
|
||||
specifier: ^1.33.1
|
||||
version: 1.33.1
|
||||
quill:
|
||||
specifier: ^1.3.7
|
||||
version: 1.3.7
|
||||
uuid:
|
||||
specifier: ^9.0.1
|
||||
version: 9.0.1
|
||||
devDependencies:
|
||||
'@collabs/collabs':
|
||||
specifier: ^0.13.4
|
||||
version: 0.13.4
|
||||
'@collabs/ws-client':
|
||||
specifier: ^0.13.4
|
||||
version: 0.13.4
|
||||
'@fontsource/fira-mono':
|
||||
specifier: ^4.5.10
|
||||
version: 4.5.10
|
||||
|
|
@ -71,9 +89,18 @@ importers:
|
|||
'@sveltejs/vite-plugin-svelte':
|
||||
specifier: ^3.0.0
|
||||
version: 3.0.1(svelte@4.2.8)(vite@5.0.10)
|
||||
'@types/color-hash':
|
||||
specifier: ^1.0.5
|
||||
version: 1.0.5
|
||||
'@types/lodash':
|
||||
specifier: ^4.14.202
|
||||
version: 4.14.202
|
||||
'@types/quill':
|
||||
specifier: ^2.0.14
|
||||
version: 2.0.14
|
||||
'@types/uuid':
|
||||
specifier: ^9.0.8
|
||||
version: 9.0.8
|
||||
svelte:
|
||||
specifier: ^4.2.7
|
||||
version: 4.2.8
|
||||
|
|
@ -163,6 +190,41 @@ packages:
|
|||
'@jridgewell/gen-mapping': 0.3.3
|
||||
'@jridgewell/trace-mapping': 0.3.20
|
||||
|
||||
/@collabs/collabs@0.13.4:
|
||||
resolution: {integrity: sha512-S9y8kU+kTYKRBj05kCvjF4an7GcF0KEevGusMMnVCrwV5KdreWDx/uFKsZjoKDDTXcr4YgOyeSvrpyip3B00ow==}
|
||||
dependencies:
|
||||
'@collabs/core': 0.13.4
|
||||
'@collabs/crdts': 0.13.4
|
||||
tslib: 2.6.2
|
||||
dev: true
|
||||
|
||||
/@collabs/core@0.13.4:
|
||||
resolution: {integrity: sha512-REEZHzoA7zataSubnW+S3MoESo8Z5i70izcgODC0+ykUjuwELziiYk/50kLEz7kyoHADO73WrXR+kDgp0dQnMA==}
|
||||
dependencies:
|
||||
'@types/seedrandom': 2.4.34
|
||||
base64-js: 1.5.1
|
||||
protobufjs: 6.9.0
|
||||
tslib: 2.6.2
|
||||
dev: true
|
||||
|
||||
/@collabs/crdts@0.13.4:
|
||||
resolution: {integrity: sha512-DLML7myFAzLo2QOWG9/+sqMvg8xxMUa7NTXQH8CR/9lR3Im7hypFd23Oatphb4EkZ1/Gx34tEepz+LSryRXLUw==}
|
||||
dependencies:
|
||||
'@collabs/core': 0.13.4
|
||||
'@types/seedrandom': 2.4.34
|
||||
base64-js: 1.5.1
|
||||
protobufjs: 6.9.0
|
||||
tslib: 2.6.2
|
||||
dev: true
|
||||
|
||||
/@collabs/ws-client@0.13.4:
|
||||
resolution: {integrity: sha512-hT7mlyViO/c5IAE7Yr3PMDVQuG9PizC6O0rrtcTZdQu7TU4vZvThJIMq8bifNeZ/h8gmcnDYcynVCBFoW5HzDg==}
|
||||
dependencies:
|
||||
'@collabs/collabs': 0.13.4
|
||||
protobufjs: 6.9.0
|
||||
tslib: 2.6.2
|
||||
dev: true
|
||||
|
||||
/@emnapi/runtime@0.45.0:
|
||||
resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==}
|
||||
requiresBuild: true
|
||||
|
|
@ -653,6 +715,49 @@ packages:
|
|||
resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/aspromise@1.1.2:
|
||||
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/base64@1.1.2:
|
||||
resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/codegen@2.0.4:
|
||||
resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/eventemitter@1.1.0:
|
||||
resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/fetch@1.1.0:
|
||||
resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
|
||||
dependencies:
|
||||
'@protobufjs/aspromise': 1.1.2
|
||||
'@protobufjs/inquire': 1.1.0
|
||||
dev: true
|
||||
|
||||
/@protobufjs/float@1.0.2:
|
||||
resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/inquire@1.1.0:
|
||||
resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/path@1.1.2:
|
||||
resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/pool@1.1.0:
|
||||
resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
|
||||
dev: true
|
||||
|
||||
/@protobufjs/utf8@1.1.0:
|
||||
resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-commonjs@25.0.7(rollup@4.10.0):
|
||||
resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
|
|
@ -1051,6 +1156,10 @@ packages:
|
|||
engines: {node: '>=10.13.0'}
|
||||
dev: true
|
||||
|
||||
/@types/color-hash@1.0.5:
|
||||
resolution: {integrity: sha512-miV7Z8zvOnRn0ZjbP/D/qb1VWHrWkKOnfC764SJvnCeIziW4pZy3tPK/542seSgccGAXlPQd/seuNyVAS/p5Ug==}
|
||||
dev: true
|
||||
|
||||
/@types/cookie@0.6.0:
|
||||
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
|
||||
dev: true
|
||||
|
|
@ -1058,6 +1167,18 @@ packages:
|
|||
/@types/estree@1.0.5:
|
||||
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
||||
|
||||
/@types/lodash@4.14.202:
|
||||
resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==}
|
||||
dev: true
|
||||
|
||||
/@types/long@4.0.2:
|
||||
resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==}
|
||||
dev: true
|
||||
|
||||
/@types/node@13.13.52:
|
||||
resolution: {integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==}
|
||||
dev: true
|
||||
|
||||
/@types/pug@2.0.10:
|
||||
resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
|
||||
dev: true
|
||||
|
|
@ -1073,6 +1194,14 @@ packages:
|
|||
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
|
||||
dev: true
|
||||
|
||||
/@types/seedrandom@2.4.34:
|
||||
resolution: {integrity: sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==}
|
||||
dev: true
|
||||
|
||||
/@types/uuid@9.0.8:
|
||||
resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
|
||||
dev: true
|
||||
|
||||
/acorn@8.11.2:
|
||||
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
|
@ -1128,6 +1257,10 @@ packages:
|
|||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
dev: true
|
||||
|
||||
/base64-js@1.5.1:
|
||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||
dev: true
|
||||
|
||||
/binary-extensions@2.2.0:
|
||||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -1233,6 +1366,10 @@ packages:
|
|||
color-name: 1.1.4
|
||||
dev: true
|
||||
|
||||
/color-hash@2.0.2:
|
||||
resolution: {integrity: sha512-6exeENAqBTuIR1wIo36mR8xVVBv6l1hSLd7Qmvf6158Ld1L15/dbahR9VUOiX7GmGJBCnQyS0EY+I8x+wa7egg==}
|
||||
dev: false
|
||||
|
||||
/color-name@1.1.3:
|
||||
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
|
||||
dev: false
|
||||
|
|
@ -1808,6 +1945,14 @@ packages:
|
|||
resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
|
||||
dev: true
|
||||
|
||||
/lodash@4.17.21:
|
||||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
||||
dev: false
|
||||
|
||||
/long@4.0.0:
|
||||
resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
|
||||
dev: true
|
||||
|
||||
/loro-crdt@0.11.1:
|
||||
resolution: {integrity: sha512-C4+lryPZUDqUiLqX0mVp9wRb6+MPvhNngJNQhQxwIDqzn3oP/7Qra8XgY37M4d4Yvx2ZgG+1nYnR+43/xRwq7g==}
|
||||
dependencies:
|
||||
|
|
@ -2072,6 +2217,26 @@ packages:
|
|||
prosemirror-transform: 1.8.0
|
||||
dev: false
|
||||
|
||||
/protobufjs@6.9.0:
|
||||
resolution: {integrity: sha512-LlGVfEWDXoI/STstRDdZZKb/qusoAWUnmLg9R8OLSO473mBLWHowx8clbX5/+mKDEI+v7GzjoK9tRPZMMcoTrg==}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@protobufjs/aspromise': 1.1.2
|
||||
'@protobufjs/base64': 1.1.2
|
||||
'@protobufjs/codegen': 2.0.4
|
||||
'@protobufjs/eventemitter': 1.1.0
|
||||
'@protobufjs/fetch': 1.1.0
|
||||
'@protobufjs/float': 1.0.2
|
||||
'@protobufjs/inquire': 1.1.0
|
||||
'@protobufjs/path': 1.1.2
|
||||
'@protobufjs/pool': 1.1.0
|
||||
'@protobufjs/utf8': 1.1.0
|
||||
'@types/long': 4.0.2
|
||||
'@types/node': 13.13.52
|
||||
long: 4.0.0
|
||||
dev: true
|
||||
|
||||
/queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
dev: true
|
||||
|
|
@ -2515,7 +2680,6 @@ packages:
|
|||
/uuid@9.0.1:
|
||||
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/vite-plugin-image-optimizer@1.1.7(vite@5.0.10):
|
||||
resolution: {integrity: sha512-KPJWndwqVi7Z2hYCudzKeNDw5U7w1DxAc266bqDBKV8taG8W3EtripFuUM4Y05IlFC19yBQndJCFA8+NJymH+w==}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue