feat: add meta info into workspace

This commit is contained in:
MingLiang Wang
2022-12-21 17:54:24 +08:00
parent 9280388c31
commit 95ad1fdcdc
7 changed files with 81 additions and 288 deletions
+3 -3
View File
@@ -9,10 +9,10 @@
"lint": "next lint"
},
"dependencies": {
"@blocksuite/blocks": "0.3.0-alpha.10",
"@blocksuite/editor": "0.3.0-alpha.10",
"@blocksuite/blocks": "0.3.0-20221221064254-e3ebf2f",
"@blocksuite/editor": "0.3.0-20221221064254-e3ebf2f",
"@blocksuite/icons": "^2.0.2",
"@blocksuite/store": "0.3.0-alpha.10",
"@blocksuite/store": "0.3.0-20221221064254-e3ebf2f",
"@emotion/css": "^11.10.0",
"@emotion/react": "^11.10.4",
"@emotion/server": "^11.10.0",
@@ -44,6 +44,7 @@ export const SelectorPopperContent = () => {
{workspacesMeta.map(workspace => {
return (
<WorkspaceItem
type={workspace.type}
key={workspace.id}
id={workspace.id}
name={`workspace-${workspace.id}`}
@@ -7,11 +7,13 @@ import {
} from '../styles';
import { FooterSetting } from './FooterSetting';
import { FooterUsers } from './FooterUsers';
import { WorkspaceType } from '@pathfinder/data-services';
interface WorkspaceItemProps {
id: string;
name: string;
icon: string;
type: WorkspaceType;
onClick?: (workspaceId: string) => void;
}
@@ -19,6 +21,7 @@ export const WorkspaceItem = ({
id,
name,
icon,
type,
onClick,
}: WorkspaceItemProps) => {
const router = useRouter();
@@ -32,6 +35,7 @@ export const WorkspaceItem = ({
onClick={() => {
router.push(`/workspace/${id}`);
}}
isPrivate={type === WorkspaceType.Private}
>
<WorkspaceItemAvatar alt={name} src={icon}>
{name.charAt(0)}
@@ -58,17 +62,21 @@ const Name = styled('div')(({ theme }) => {
};
});
const StyledWrapper = styled(WorkspaceItemWrapper)({
'& .footer-setting': {
display: 'none',
},
':hover .footer-users': {
display: 'none',
},
':hover .footer-setting': {
display: 'block',
},
});
const StyledWrapper = styled(WorkspaceItemWrapper)<{ isPrivate: boolean }>(
({ isPrivate }) => {
return {
'& .footer-setting': {
display: 'none',
},
':hover .footer-users': {
display: isPrivate ? 'block' : 'none',
},
':hover .footer-setting': {
display: isPrivate ? 'none' : 'block',
},
};
}
);
const Footer = styled('div')({
width: '42px',
@@ -1,7 +1,7 @@
import { useEffect } from 'react';
import type { Page } from '@blocksuite/store';
import {
createWebsocketDocProvider,
// createWebsocketDocProvider,
IndexedDBDocProvider,
Workspace,
} from '@blocksuite/store';
@@ -13,17 +13,18 @@ import type {
LoadWorkspaceHandler,
CreateEditorHandler,
} from './context';
import { downloadWorkspace } from '@pathfinder/data-services';
const getEditorParams = (workspaceId: string) => {
const providers = [];
const params = new URLSearchParams(location.search);
// const room = params.get('room') ?? 'AFFINE-pathfinder';
if (params.get('syncMode') === 'websocket') {
const WebsocketDocProvider = createWebsocketDocProvider(
`ws://${window.location.host}/collaboration/`
);
providers.push(WebsocketDocProvider);
}
// if (params.get('syncMode') === 'websocket') {
// const WebsocketDocProvider = createWebsocketDocProvider(
// `ws://${window.location.host}/collaboration/`
// );
// providers.push(WebsocketDocProvider);
// }
providers.push(IndexedDBDocProvider);
@@ -44,7 +45,7 @@ const DynamicBlocksuite = ({
}: Props) => {
useEffect(() => {
const openWorkspace: LoadWorkspaceHandler = (workspaceId: string) =>
new Promise(resolve => {
new Promise(async resolve => {
const workspace = new Workspace({
...getEditorParams(workspaceId as string),
}).register(BlockSchema);
@@ -53,7 +54,12 @@ const DynamicBlocksuite = ({
p => p instanceof IndexedDBDocProvider
);
if (indexDBProvider) {
(indexDBProvider as IndexedDBDocProvider)?.on('synced', () => {
(indexDBProvider as IndexedDBDocProvider)?.on('synced', async () => {
const updates = await downloadWorkspace({ workspaceId });
updates &&
Workspace.Y.applyUpdate(workspace.doc, new Uint8Array(updates));
// if after update, the space:meta is empty, then we need to get map with doc
workspace.doc.getMap('space:meta');
resolve(workspace);
});
} else {
@@ -118,6 +118,13 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => {
useEffect(() => {
const callback = async (user: AccessTokenMessage | null) => {
const workspacesMeta = user ? await getWorkspaces() : [];
const workspaces = await Promise.all(
workspacesMeta.map(async ({ id }) => {
const workspace = (await loadWorkspaceHandler?.(id)) || null;
return workspace;
})
);
// TODO: add meta info to workspace meta
setState(state => ({ ...state, user: user, workspacesMeta }));
};
authorizationEvent.onChange(callback);
@@ -125,7 +132,7 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => {
return () => {
authorizationEvent.removeCallback(callback);
};
}, []);
}, [loadWorkspaceHandler]);
const context = useMemo(
() => ({
+2 -1
View File
@@ -190,10 +190,11 @@ export interface DownloadWOrkspaceParams {
}
export async function downloadWorkspace(
params: DownloadWOrkspaceParams
): Promise<Uint16Array> {
): Promise<ArrayBuffer> {
const data = await request({
url: `/api/workspace/${params.workspaceId}/doc`,
method: 'GET',
responseType: 'arraybuffer',
});
return data.data;
+33 -263
View File
@@ -30,10 +30,10 @@ importers:
packages/app:
specifiers:
'@blocksuite/blocks': 0.3.0-alpha.10
'@blocksuite/editor': 0.3.0-alpha.10
'@blocksuite/blocks': 0.3.0-20221221064254-e3ebf2f
'@blocksuite/editor': 0.3.0-20221221064254-e3ebf2f
'@blocksuite/icons': ^2.0.2
'@blocksuite/store': 0.3.0-alpha.10
'@blocksuite/store': 0.3.0-20221221064254-e3ebf2f
'@emotion/css': ^11.10.0
'@emotion/react': ^11.10.4
'@emotion/server': ^11.10.0
@@ -66,10 +66,10 @@ importers:
react-i18next: ^11.18.4
typescript: 4.8.3
dependencies:
'@blocksuite/blocks': 0.3.0-alpha.10
'@blocksuite/editor': 0.3.0-alpha.10
'@blocksuite/blocks': 0.3.0-20221221064254-e3ebf2f
'@blocksuite/editor': 0.3.0-20221221064254-e3ebf2f
'@blocksuite/icons': 2.0.2_w5j4k42lgipnm43s3brx6h3c34
'@blocksuite/store': 0.3.0-alpha.10
'@blocksuite/store': 0.3.0-20221221064254-e3ebf2f
'@emotion/css': 11.10.0
'@emotion/react': 11.10.4_w5j4k42lgipnm43s3brx6h3c34
'@emotion/server': 11.10.0_@emotion+css@11.10.0
@@ -499,12 +499,12 @@ packages:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
/@blocksuite/blocks/0.3.0-alpha.10:
resolution: {integrity: sha512-tW6AMQTQIkBg4uob+6naAtnNWEgxtX/kBFpV/L1hGW3OHGF6JwpyM/AfzuuS9KooDJvADpb2xeQnNcifJTWGHA==}
/@blocksuite/blocks/0.3.0-20221221064254-e3ebf2f:
resolution: {integrity: sha512-FX7Pw5oa3t2WxwXQ+jb2nZnl0PTQXhKYbpyqeGi5pyIHERujrp65m7ivfhb9TFoM0DoMmCW2lqYlmd0yb3OBhw==}
dependencies:
'@blocksuite/store': 0.3.0-alpha.10
'@blocksuite/store': 0.3.0-20221221064254-e3ebf2f
'@tldraw/intersect': 1.8.0
'@tldraw/vec': 1.8.0
highlight.js: 11.7.0
hotkeys-js: 3.10.0
lit: 2.4.0
perfect-freehand: 1.2.0
@@ -516,11 +516,11 @@ packages:
- utf-8-validate
dev: false
/@blocksuite/editor/0.3.0-alpha.10:
resolution: {integrity: sha512-P5PcrYGRmnOeNTdqGDncWjUn5BwCm4j5JvJkjOw80VbvWNcVtWhr2ViBCsgD00m4ZIybxV6o00GOqDNNej2mEQ==}
/@blocksuite/editor/0.3.0-20221221064254-e3ebf2f:
resolution: {integrity: sha512-FTPBLGC8yqnbom7YcKf3RlVuvk3q7D2xf9BEkUtOq6rPv1KwW69WO1ZlDIWIYzLZhKf+7N2gqeLaOJy3Ct/HnA==}
dependencies:
'@blocksuite/blocks': 0.3.0-alpha.10
'@blocksuite/store': 0.3.0-alpha.10
'@blocksuite/blocks': 0.3.0-20221221064254-e3ebf2f
'@blocksuite/store': 0.3.0-20221221064254-e3ebf2f
lit: 2.4.0
marked: 4.1.1
turndown: 7.1.1
@@ -540,19 +540,19 @@ packages:
react: 18.2.0
dev: false
/@blocksuite/store/0.3.0-alpha.10:
resolution: {integrity: sha512-KP88oFu5qAZA1mYbfLZ6D8S90bw8x3d19HhfoOqME0MOHyY6r462NF7wxQh9jlGDsCmyJMf3ZY+z/PxsJIufxQ==}
/@blocksuite/store/0.3.0-20221221064254-e3ebf2f:
resolution: {integrity: sha512-ZB4J341eMGQM1AB11t9zJjvaqR6NLQjqqpBQzkkCG7ejGmT3su68WbhNgc7+Ngjs28vIgqlcod+s98Wo2pVfgg==}
dependencies:
'@types/flexsearch': 0.7.3
'@types/quill': 1.3.10
buffer: 6.0.3
flexsearch: 0.7.21
idb-keyval: 6.2.0
ky: 0.32.2
lib0: 0.2.52
sha3: 2.1.4
y-indexeddb: 9.0.9_yjs@13.5.41
y-protocols: 1.0.5
y-webrtc: 10.2.3
y-websocket: 1.4.5_yjs@13.5.41
yjs: 13.5.41
transitivePeerDependencies:
- bufferutil
@@ -2279,6 +2279,10 @@ packages:
'@babel/types': 7.20.5
dev: true
/@types/flexsearch/0.7.3:
resolution: {integrity: sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==}
dev: false
/@types/graceful-fs/4.1.5:
resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
dependencies:
@@ -2323,6 +2327,12 @@ packages:
/@types/prop-types/15.7.5:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
/@types/quill/1.3.10:
resolution: {integrity: sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==}
dependencies:
parchment: 1.1.4
dev: false
/@types/react-dom/18.0.6:
resolution: {integrity: sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==}
dependencies:
@@ -2480,30 +2490,6 @@ packages:
eslint-visitor-keys: 3.3.0
dev: true
/abstract-leveldown/6.2.3:
resolution: {integrity: sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==}
engines: {node: '>=6'}
dependencies:
buffer: 5.7.1
immediate: 3.3.0
level-concat-iterator: 2.0.1
level-supports: 1.0.1
xtend: 4.0.2
dev: false
optional: true
/abstract-leveldown/6.3.0:
resolution: {integrity: sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==}
engines: {node: '>=6'}
dependencies:
buffer: 5.7.1
immediate: 3.3.0
level-concat-iterator: 2.0.1
level-supports: 1.0.1
xtend: 4.0.2
dev: false
optional: true
/acorn-jsx/5.3.2_acorn@8.8.0:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@@ -2635,11 +2621,6 @@ packages:
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
dev: true
/async-limiter/1.0.1:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
dev: false
optional: true
/asynckit/0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
dev: false
@@ -2796,14 +2777,6 @@ packages:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
dev: true
/buffer/5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
dev: false
optional: true
/buffer/6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
dependencies:
@@ -3059,15 +3032,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
/deferred-leveldown/5.3.0:
resolution: {integrity: sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==}
engines: {node: '>=6'}
dependencies:
abstract-leveldown: 6.2.3
inherits: 2.0.4
dev: false
optional: true
/define-properties/1.1.4:
resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
engines: {node: '>= 0.4'}
@@ -3148,17 +3112,6 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
/encoding-down/6.3.0:
resolution: {integrity: sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==}
engines: {node: '>=6'}
dependencies:
abstract-leveldown: 6.3.0
inherits: 2.0.4
level-codec: 9.0.2
level-errors: 2.0.1
dev: false
optional: true
/encoding/0.1.13:
resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
dependencies:
@@ -3169,14 +3122,6 @@ packages:
resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==}
dev: false
/errno/0.1.8:
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
hasBin: true
dependencies:
prr: 1.0.1
dev: false
optional: true
/error-ex/1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
@@ -3943,6 +3888,11 @@ packages:
dependencies:
function-bind: 1.1.1
/highlight.js/11.7.0:
resolution: {integrity: sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==}
engines: {node: '>=12.0.0'}
dev: false
/hoist-non-react-statics/3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
dependencies:
@@ -4018,11 +3968,6 @@ packages:
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
dev: false
/immediate/3.3.0:
resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==}
dev: false
optional: true
/import-fresh/3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
@@ -4740,98 +4685,6 @@ packages:
language-subtag-registry: 0.3.22
dev: true
/level-codec/9.0.2:
resolution: {integrity: sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==}
engines: {node: '>=6'}
dependencies:
buffer: 5.7.1
dev: false
optional: true
/level-concat-iterator/2.0.1:
resolution: {integrity: sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==}
engines: {node: '>=6'}
dev: false
optional: true
/level-errors/2.0.1:
resolution: {integrity: sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==}
engines: {node: '>=6'}
dependencies:
errno: 0.1.8
dev: false
optional: true
/level-iterator-stream/4.0.2:
resolution: {integrity: sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==}
engines: {node: '>=6'}
dependencies:
inherits: 2.0.4
readable-stream: 3.6.0
xtend: 4.0.2
dev: false
optional: true
/level-js/5.0.2:
resolution: {integrity: sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==}
dependencies:
abstract-leveldown: 6.2.3
buffer: 5.7.1
inherits: 2.0.4
ltgt: 2.2.1
dev: false
optional: true
/level-packager/5.1.1:
resolution: {integrity: sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==}
engines: {node: '>=6'}
dependencies:
encoding-down: 6.3.0
levelup: 4.4.0
dev: false
optional: true
/level-supports/1.0.1:
resolution: {integrity: sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==}
engines: {node: '>=6'}
dependencies:
xtend: 4.0.2
dev: false
optional: true
/level/6.0.1:
resolution: {integrity: sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==}
engines: {node: '>=8.6.0'}
dependencies:
level-js: 5.0.2
level-packager: 5.1.1
leveldown: 5.6.0
dev: false
optional: true
/leveldown/5.6.0:
resolution: {integrity: sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==}
engines: {node: '>=8.6.0'}
requiresBuild: true
dependencies:
abstract-leveldown: 6.2.3
napi-macros: 2.0.0
node-gyp-build: 4.1.1
dev: false
optional: true
/levelup/4.4.0:
resolution: {integrity: sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==}
engines: {node: '>=6'}
dependencies:
deferred-leveldown: 5.3.0
level-errors: 2.0.1
level-iterator-stream: 4.0.2
level-supports: 1.0.1
xtend: 4.0.2
dev: false
optional: true
/leven/3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@@ -4900,10 +4753,6 @@ packages:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
dev: false
/lodash.debounce/4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
dev: false
/lodash.memoize/4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
dev: true
@@ -4936,11 +4785,6 @@ packages:
yallist: 4.0.0
dev: true
/ltgt/2.2.1:
resolution: {integrity: sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==}
dev: false
optional: true
/make-dir/3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
@@ -5030,11 +4874,6 @@ packages:
hasBin: true
dev: false
/napi-macros/2.0.0:
resolution: {integrity: sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==}
dev: false
optional: true
/natural-compare/1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
@@ -5142,12 +4981,6 @@ packages:
whatwg-url: 5.0.0
dev: false
/node-gyp-build/4.1.1:
resolution: {integrity: sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==}
hasBin: true
dev: false
optional: true
/node-int64/0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
dev: true
@@ -5463,11 +5296,6 @@ packages:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
dev: false
/prr/1.0.1:
resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
dev: false
optional: true
/punycode/2.1.1:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
engines: {node: '>=6'}
@@ -5769,12 +5597,6 @@ packages:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
dev: false
/sha3/2.1.4:
resolution: {integrity: sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==}
dependencies:
buffer: 6.0.3
dev: false
/shebang-command/2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -6343,22 +6165,6 @@ packages:
signal-exit: 3.0.7
dev: true
/ws/6.2.2:
resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==}
requiresBuild: true
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ^5.0.2
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
dependencies:
async-limiter: 1.0.1
dev: false
optional: true
/ws/7.5.9:
resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
engines: {node: '>=8.3.0'}
@@ -6394,12 +6200,6 @@ packages:
object-keys: 0.4.0
dev: false
/xtend/4.0.2:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
dev: false
optional: true
/y-indexeddb/9.0.9_yjs@13.5.41:
resolution: {integrity: sha512-GcJbiJa2eD5hankj46Hea9z4hbDnDjvh1fT62E5SpZRsv8GcEemw34l1hwI2eknGcv5Ih9JfusT37JLx9q3LFg==}
peerDependencies:
@@ -6409,18 +6209,6 @@ packages:
yjs: 13.5.41
dev: false
/y-leveldb/0.1.1_yjs@13.5.41:
resolution: {integrity: sha512-L8Q0MQmxCQ0qWIOuPzLbWn95TNhrCI7M6LaHnilU4I2IX08e4Dmfg5Tgy4JZ3tnl2aiuZyDOJplHl/msIB/IsA==}
requiresBuild: true
peerDependencies:
yjs: ^13.0.0
dependencies:
level: 6.0.1
lib0: 0.2.52
yjs: 13.5.41
dev: false
optional: true
/y-protocols/1.0.5:
resolution: {integrity: sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A==}
dependencies:
@@ -6443,24 +6231,6 @@ packages:
- utf-8-validate
dev: false
/y-websocket/1.4.5_yjs@13.5.41:
resolution: {integrity: sha512-5d9LTSy0GQKqSd/FKRo5DMBlsiTlCipbKcIgPLlno+5xHtfT8bm3uQdcbY9JvLfckojilLZWauXJu0vzDZX05w==}
hasBin: true
peerDependencies:
yjs: ^13.5.6
dependencies:
lib0: 0.2.52
lodash.debounce: 4.0.8
y-protocols: 1.0.5
yjs: 13.5.41
optionalDependencies:
ws: 6.2.2
y-leveldb: 0.1.1_yjs@13.5.41
transitivePeerDependencies:
- bufferutil
- utf-8-validate
dev: false
/y18n/5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}