Skip to content

Commit e92c7a7

Browse files
committed
fixup! ✨(frontend) use title first emoji as doc icon in tree
1 parent 04d3a7b commit e92c7a7

File tree

9 files changed

+73
-77
lines changed

9 files changed

+73
-77
lines changed

src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ test.describe('Doc Header', () => {
6161
await verifyDocName(page, 'Hello World');
6262
});
6363

64+
test('it updates the title doc adding a leading emoji', async ({
65+
page,
66+
browserName,
67+
}) => {
68+
await createDoc(page, 'doc-update', browserName, 1);
69+
const docTitle = page.getByRole('textbox', { name: 'doc title input' });
70+
await expect(docTitle).toBeVisible();
71+
await docTitle.fill('👍 Hello World');
72+
await docTitle.blur();
73+
await verifyDocName(page, '👍 Hello World');
74+
});
75+
6476
test('it deletes the doc', async ({ page, browserName }) => {
6577
const [randomDoc] = await createDoc(page, 'doc-delete', browserName, 1);
6678

src/frontend/apps/impress/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"crisp-sdk-web": "1.0.25",
4242
"docx": "9.5.0",
4343
"emoji-mart": "5.6.0",
44-
"emoji-regex": "^10.4.0",
44+
"emoji-regex": "10.4.0",
4545
"i18next": "25.3.2",
4646
"i18next-browser-languagedetector": "8.2.0",
4747
"idb": "8.0.3",

src/frontend/apps/impress/src/features/docs/doc-management/__tests__/utils.test.tsx

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { beforeEach, describe, expect, it, vi } from 'vitest';
12
import * as Y from 'yjs';
23

34
import { LinkReach, LinkRole, Role } from '../types';
@@ -11,16 +12,16 @@ import {
1112
} from '../utils';
1213

1314
// Mock Y.js
14-
jest.mock('yjs', () => ({
15-
Doc: jest.fn().mockImplementation(() => ({
16-
getXmlFragment: jest.fn().mockReturnValue('mocked-xml-fragment'),
15+
vi.mock('yjs', () => ({
16+
Doc: vi.fn().mockImplementation(() => ({
17+
getXmlFragment: vi.fn().mockReturnValue('mocked-xml-fragment'),
1718
})),
18-
applyUpdate: jest.fn(),
19+
applyUpdate: vi.fn(),
1920
}));
2021

2122
describe('doc-management utils', () => {
2223
beforeEach(() => {
23-
jest.clearAllMocks();
24+
vi.clearAllMocks();
2425
});
2526

2627
describe('currentDocRole', () => {
@@ -76,9 +77,9 @@ describe('doc-management utils', () => {
7677
describe('base64ToYDoc', () => {
7778
it('should convert base64 string to Y.Doc', () => {
7879
const base64String = 'dGVzdA=='; // "test" in base64
79-
const mockYDoc = { getXmlFragment: jest.fn() };
80+
const mockYDoc = { getXmlFragment: vi.fn() };
8081

81-
(Y.Doc as jest.Mock).mockReturnValue(mockYDoc);
82+
(Y.Doc as any).mockReturnValue(mockYDoc);
8283

8384
const result = base64ToYDoc(base64String);
8485

@@ -89,9 +90,9 @@ describe('doc-management utils', () => {
8990

9091
it('should handle empty base64 string', () => {
9192
const base64String = '';
92-
const mockYDoc = { getXmlFragment: jest.fn() };
93+
const mockYDoc = { getXmlFragment: vi.fn() };
9394

94-
(Y.Doc as jest.Mock).mockReturnValue(mockYDoc);
95+
(Y.Doc as any).mockReturnValue(mockYDoc);
9596

9697
const result = base64ToYDoc(base64String);
9798

@@ -105,10 +106,10 @@ describe('doc-management utils', () => {
105106
it('should convert base64 to Blocknote XML fragment', () => {
106107
const base64String = 'dGVzdA==';
107108
const mockYDoc = {
108-
getXmlFragment: jest.fn().mockReturnValue('mocked-xml-fragment'),
109+
getXmlFragment: vi.fn().mockReturnValue('mocked-xml-fragment'),
109110
};
110111

111-
(Y.Doc as jest.Mock).mockReturnValue(mockYDoc);
112+
(Y.Doc as any).mockReturnValue(mockYDoc);
112113

113114
const result = base64ToBlocknoteXmlFragment(base64String);
114115

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,36 @@
1-
import { Text } from '@/components';
1+
import { useTranslation } from 'react-i18next';
22

3-
type DocIconProps = {
3+
import { Text, TextType } from '@/components';
4+
5+
type DocIconProps = TextType & {
46
emoji?: string | null;
57
defaultIcon: React.ReactNode;
6-
iconSize?: 'sm' | 'lg';
7-
iconVariation?:
8-
| '500'
9-
| '400'
10-
| 'text'
11-
| '1000'
12-
| '000'
13-
| '100'
14-
| '200'
15-
| '300'
16-
| '600'
17-
| '700'
18-
| '800'
19-
| '900';
20-
iconWeight?: '400' | '500' | '600' | '700' | '800' | '900';
218
};
229

2310
export const DocIcon = ({
2411
emoji,
2512
defaultIcon,
26-
iconSize = 'sm',
27-
iconVariation = '1000',
28-
iconWeight = '400',
13+
$size = 'sm',
14+
$variation = '1000',
15+
$weight = '400',
16+
...textProps
2917
}: DocIconProps) => {
30-
if (emoji) {
31-
return (
32-
<Text
33-
$size={iconSize}
34-
$variation={iconVariation}
35-
$weight={iconWeight}
36-
aria-hidden="true"
37-
aria-label="Document emoji icon"
38-
>
39-
{emoji}
40-
</Text>
41-
);
18+
const { t } = useTranslation();
19+
20+
if (!emoji) {
21+
return <>{defaultIcon}</>;
4222
}
4323

44-
return <>{defaultIcon}</>;
24+
return (
25+
<Text
26+
{...textProps}
27+
$size={$size}
28+
$variation={$variation}
29+
$weight={$weight}
30+
aria-hidden="true"
31+
aria-label={t('Document emoji icon')}
32+
>
33+
{emoji}
34+
</Text>
35+
);
4536
};

src/frontend/apps/impress/src/features/docs/doc-management/components/SimpleDocItem.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ export const SimpleDocItem = ({
3838
const { isDesktop } = useResponsiveStore();
3939
const { untitledDocument } = useTrans();
4040

41-
const { emoji, titleWithoutEmoji } = getEmojiAndTitle(doc.title || '');
42-
const displayTitle = titleWithoutEmoji || untitledDocument;
41+
const { emoji, titleWithoutEmoji: displayTitle } = getEmojiAndTitle(
42+
doc.title || untitledDocument,
43+
);
4344

4445
return (
4546
<Box
@@ -75,7 +76,7 @@ export const SimpleDocItem = ({
7576
color={colorsTokens['primary-500']}
7677
/>
7778
}
78-
iconSize="lg"
79+
$size="25px"
7980
/>
8081
)}
8182
</Box>

src/frontend/apps/impress/src/features/docs/doc-management/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export const getEmojiAndTitle = (title: string) => {
3838

3939
// Check if the title starts with an emoji
4040
const match = title.match(regex);
41-
console.log(match);
41+
4242
if (match && title.startsWith(match[0])) {
4343
const emoji = match[0];
4444
const titleWithoutEmoji = title.substring(emoji.length).trim();

src/frontend/apps/impress/src/features/docs/doc-tree/components/DocSubPageItem.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,7 @@ export const DocSubPageItem = (props: TreeViewNodeProps<Doc>) => {
130130
$minHeight="24px"
131131
>
132132
<Box $width="16px" $height="16px">
133-
<DocIcon
134-
emoji={emoji}
135-
defaultIcon={<SubPageIcon />}
136-
iconSize="sm"
137-
/>
133+
<DocIcon emoji={emoji} defaultIcon={<SubPageIcon />} $size="sm" />
138134
</Box>
139135

140136
<Box

src/frontend/apps/impress/src/i18n/translations.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"Docs Logo": "Logo Docs",
4343
"Document accessible to any connected person": "Restr a c'hall bezañ tizhet gant ne vern piv a vefe kevreet",
4444
"Document duplicated successfully!": "Restr eilet gant berzh!",
45+
"Document emoji icon": "Ikon emojis ar restr",
4546
"Document owner": "Perc'henn ar restr",
4647
"Document sections": "Rannoù an teul",
4748
"Docx": "Docx",
@@ -218,6 +219,7 @@
218219
"Docs: Your new companion to collaborate on documents efficiently, intuitively, and securely.": "Pages: Ihr neuer Begleiter für eine effiziente, intuitive und sichere Zusammenarbeit bei Dokumenten.",
219220
"Document accessible to any connected person": "Dokument für jeden angemeldeten Benutzer zugänglich",
220221
"Document duplicated successfully!": "Dokument erfolgreich dupliziert!",
222+
"Document emoji icon": "Emojisymbol für das Dokument",
221223
"Document owner": "Besitzer des Dokuments",
222224
"Document sections": "Dokumentabschnitte",
223225
"Docx": "Docx",
@@ -443,6 +445,7 @@
443445
"Docs transforms your documents into knowledge bases thanks to subpages, powerful search and the ability to pin your important documents.": "Docs transforma sus documentos en bases de conocimiento gracias a las subpáginas, una potente herramienta de búsqueda y la capacidad de marcar como favorito sus documentos más importantes.",
444446
"Docs: Your new companion to collaborate on documents efficiently, intuitively, and securely.": "Docs: su nuevo compañero para colaborar en documentos de forma eficiente, intuitiva y segura.",
445447
"Document accessible to any connected person": "Documento accesible a cualquier persona conectada",
448+
"Document emoji icon": "Emoji para el documento",
446449
"Document owner": "Propietario del documento",
447450
"Document sections": "Secciones del documento",
448451
"Docx": "Docx",
@@ -643,6 +646,7 @@
643646
"Docs: Your new companion to collaborate on documents efficiently, intuitively, and securely.": "Docs : Votre nouveau compagnon pour collaborer sur des documents efficacement, intuitivement et en toute sécurité.",
644647
"Document accessible to any connected person": "Document accessible à toute personne connectée",
645648
"Document duplicated successfully!": "Document dupliqué avec succès !",
649+
"Document emoji icon": "Emoji pour le document",
646650
"Document owner": "Propriétaire du document",
647651
"Document sections": "Sections des documents",
648652
"Docx": "Docx",
@@ -860,6 +864,7 @@
860864
"Docs transforms your documents into knowledge bases thanks to subpages, powerful search and the ability to pin your important documents.": "Docs trasforma i tuoi documenti in piattaforme di conoscenza grazie alle sotto-pagine, alla ricerca potente e alla capacità di fissare i tuoi documenti importanti.",
861865
"Docs: Your new companion to collaborate on documents efficiently, intuitively, and securely.": "Docs: Il tuo nuovo compagno di collaborare sui documenti in modo efficiente, intuitivo e sicuro.",
862866
"Document accessible to any connected person": "Documento accessibile a qualsiasi persona collegata",
867+
"Document emoji icon": "Emoji per il documento",
863868
"Document owner": "Proprietario del documento",
864869
"Docx": "Docx",
865870
"Download": "Scarica",
@@ -1019,6 +1024,7 @@
10191024
"Docs transforms your documents into knowledge bases thanks to subpages, powerful search and the ability to pin your important documents.": "Documentatie transformeert uw documenten in een kennisbasis, dankzij subpagina's, krachtig zoeken en de mogelijkheid om uw belangrijke documenten te pinnen.",
10201025
"Docs: Your new companion to collaborate on documents efficiently, intuitively, and securely.": "Docs: Je nieuwe metgezel om efficiënt, intuïtief en veilig samen te werken aan documenten.",
10211026
"Document accessible to any connected person": "Document is toegankelijk voor ieder verbonden persoon",
1027+
"Document emoji icon": "Emoji voor het document",
10221028
"Document owner": "Document eigenaar",
10231029
"Document sections": "Document secties",
10241030
"Docx": "Docx",
@@ -1314,6 +1320,7 @@
13141320
"Docs transforms your documents into knowledge bases thanks to subpages, powerful search and the ability to pin your important documents.": "Docs 通过子页面、强大的搜索功能以及固定重要文档的能力,将您的文档转化为知识库。",
13151321
"Docs: Your new companion to collaborate on documents efficiently, intuitively, and securely.": "Docs 为您提供高效、直观且安全的文档协作解决方案。",
13161322
"Document accessible to any connected person": "任何来访的人都可以访问文档",
1323+
"Document emoji icon": "文档表情符号",
13171324
"Document owner": "文档所有者",
13181325
"Docx": "Doc",
13191326
"Download": "下载",

src/frontend/yarn.lock

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5493,20 +5493,13 @@
54935493
dependencies:
54945494
"@types/node" "*"
54955495

5496-
"@types/node@*", "@types/node@^22.7.5":
5496+
"@types/node@*", "@types/node@22.10.7", "@types/[email protected]", "@types/node@^22.7.5":
54975497
version "22.17.0"
54985498
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.17.0.tgz#e8c9090e957bd4d9860efb323eb92d297347eac7"
54995499
integrity sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==
55005500
dependencies:
55015501
undici-types "~6.21.0"
55025502

5503-
5504-
version "22.10.7"
5505-
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.7.tgz#14a1ca33fd0ebdd9d63593ed8d3fbc882a6d28d7"
5506-
integrity sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==
5507-
dependencies:
5508-
undici-types "~6.20.0"
5509-
55105503
"@types/parse-json@^4.0.0":
55115504
version "4.0.2"
55125505
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
@@ -5559,7 +5552,7 @@
55595552
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
55605553
integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
55615554

5562-
"@types/react-dom@*":
5555+
"@types/react-dom@*", "@types/[email protected]":
55635556
version "19.1.7"
55645557
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.7.tgz#2863f2aa89e023592b981204ef92c5221b286410"
55655558
integrity sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==
@@ -5576,7 +5569,7 @@
55765569
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044"
55775570
integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==
55785571

5579-
"@types/react@*":
5572+
"@types/react@*", "@types/[email protected]":
55805573
version "19.1.9"
55815574
resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.9.tgz#f42b24f35474566a39b5c3a98e4d0c425b79a849"
55825575
integrity sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==
@@ -5684,7 +5677,7 @@
56845677
dependencies:
56855678
"@types/yargs-parser" "*"
56865679

5687-
"@typescript-eslint/eslint-plugin@*", "@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
5680+
"@typescript-eslint/eslint-plugin@*", "@typescript-eslint/eslint-plugin@8.39.0", "@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
56885681
version "8.39.0"
56895682
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.39.0.tgz#c9afec1866ee1a6ea3d768b5f8e92201efbbba06"
56905683
integrity sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==
@@ -5699,7 +5692,7 @@
56995692
natural-compare "^1.4.0"
57005693
ts-api-utils "^2.1.0"
57015694

5702-
"@typescript-eslint/parser@*", "@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
5695+
"@typescript-eslint/parser@*", "@typescript-eslint/parser@8.39.0", "@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
57035696
version "8.39.0"
57045697
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.39.0.tgz#c4b895d7a47f4cd5ee6ee77ea30e61d58b802008"
57055698
integrity sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==
@@ -7631,7 +7624,7 @@ [email protected], emoji-mart@^5.6.0:
76317624
resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-5.6.0.tgz#71b3ed0091d3e8c68487b240d9d6d9a73c27f023"
76327625
integrity sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==
76337626

7634-
emoji-regex@^10.3.0, emoji-regex@^10.4.0:
7627+
emoji-regex@10.4.0, emoji-regex@^10.3.0:
76357628
version "10.4.0"
76367629
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
76377630
integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
@@ -8067,7 +8060,7 @@ eslint-visitor-keys@^4.2.1:
80678060
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
80688061
integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
80698062

8070-
eslint@*:
8063+
80718064
version "8.57.0"
80728065
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
80738066
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
@@ -12293,7 +12286,7 @@ react-dnd@^14.0.3:
1229312286
fast-deep-equal "^3.1.3"
1229412287
hoist-non-react-statics "^3.3.2"
1229512288

12296-
react-dom@*:
12289+
react-dom@*, [email protected]:
1229712290
version "19.1.0"
1229812291
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.0.tgz#133558deca37fa1d682708df8904b25186793623"
1229912292
integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==
@@ -12501,7 +12494,7 @@ react-window@^1.8.11:
1250112494
"@babel/runtime" "^7.0.0"
1250212495
memoize-one ">=3.1.1 <6"
1250312496

12504-
react@*:
12497+
1250512498
version "19.1.0"
1250612499
resolved "https://registry.yarnpkg.com/react/-/react-19.1.0.tgz#926864b6c48da7627f004795d6cce50e90793b75"
1250712500
integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==
@@ -14147,7 +14140,7 @@ typed-array-length@^1.0.7:
1414714140
possible-typed-array-names "^1.0.0"
1414814141
reflect.getprototypeof "^1.0.6"
1414914142

14150-
typescript@*, typescript@^5.0.4:
14143+
typescript@*, typescript@5.9.2, typescript@^5.0.4:
1415114144
version "5.9.2"
1415214145
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
1415314146
integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
@@ -14185,11 +14178,6 @@ underscore.string@~3.3.4:
1418514178
sprintf-js "^1.1.1"
1418614179
util-deprecate "^1.0.2"
1418714180

14188-
undici-types@~6.20.0:
14189-
version "6.20.0"
14190-
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
14191-
integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
14192-
1419314181
undici-types@~6.21.0:
1419414182
version "6.21.0"
1419514183
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
@@ -15180,7 +15168,7 @@ yargs@^17.7.2:
1518015168
y18n "^5.0.5"
1518115169
yargs-parser "^21.1.1"
1518215170

15183-
yjs@*, yjs@^13.6.27:
15171+
yjs@*, yjs@13.6.27, yjs@^13.6.27:
1518415172
version "13.6.27"
1518515173
resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.6.27.tgz#8899be929d57da05a0aa112d044a5c204393ab7b"
1518615174
integrity sha512-OIDwaflOaq4wC6YlPBy2L6ceKeKuF7DeTxx+jPzv1FHn9tCZ0ZwSRnUBxD05E3yed46fv/FWJbvR+Ud7x0L7zw==

0 commit comments

Comments
 (0)