From acaf7ba95d727988219f8672e20899c2a63524d1 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Thu, 19 Oct 2023 15:28:56 +0100 Subject: [PATCH] update dependencies --- server/package.json | 61 +++++++++---------- .../extensions/persistence.extension.ts | 26 +++++--- 2 files changed, 47 insertions(+), 40 deletions(-) diff --git a/server/package.json b/server/package.json index d7f032f6..65bd1f36 100644 --- a/server/package.json +++ b/server/package.json @@ -27,24 +27,24 @@ "migration:show": "npm run typeorm migration:show" }, "dependencies": { - "@aws-sdk/client-s3": "^3.417.0", - "@aws-sdk/s3-request-presigner": "^3.418.0", - "@hocuspocus/server": "^2.5.0", - "@hocuspocus/transformer": "^2.5.0", - "@nestjs/common": "^10.0.0", - "@nestjs/config": "^3.0.0", - "@nestjs/core": "^10.0.0", - "@nestjs/jwt": "^10.1.0", + "@aws-sdk/client-s3": "^3.431.0", + "@aws-sdk/s3-request-presigner": "^3.431.0", + "@hocuspocus/server": "^2.7.0", + "@hocuspocus/transformer": "^2.7.0", + "@nestjs/common": "^10.2.7", + "@nestjs/config": "^3.1.1", + "@nestjs/core": "^10.2.7", + "@nestjs/jwt": "^10.1.1", "@nestjs/mapped-types": "^2.0.2", - "@nestjs/platform-fastify": "^10.2.4", + "@nestjs/platform-fastify": "^10.2.7", "@nestjs/platform-socket.io": "^10.2.7", - "@nestjs/platform-ws": "^10.2.4", + "@nestjs/platform-ws": "^10.2.7", "@nestjs/typeorm": "^10.0.0", "@nestjs/websockets": "^10.2.7", "bcrypt": "^5.1.1", "class-transformer": "^0.5.1", "class-validator": "^0.14.0", - "fastify": "^4.22.2", + "fastify": "^4.24.2", "fs-extra": "^11.1.1", "mime-types": "^2.1.35", "pg": "^8.11.3", @@ -52,36 +52,35 @@ "rxjs": "^7.8.1", "socket.io": "^4.7.2", "typeorm": "^0.3.17", - "uuid": "^9.0.0", - "ws": "^8.14.1" + "uuid": "^9.0.1", + "ws": "^8.14.2" }, "devDependencies": { - "@nestjs/cli": "^10.0.0", - "@nestjs/schematics": "^10.0.0", - "@nestjs/testing": "^10.0.0", + "@nestjs/cli": "^10.1.18", + "@nestjs/schematics": "^10.0.2", + "@nestjs/testing": "^10.2.7", "@types/bcrypt": "^5.0.0", - "@types/express": "^4.17.17", "@types/fs-extra": "^11.0.2", - "@types/jest": "^29.5.2", - "@types/mime-types": "^2.1.1", - "@types/node": "^20.3.1", - "@types/supertest": "^2.0.12", - "@types/uuid": "^9.0.3", - "@types/ws": "^8.5.5", - "@typescript-eslint/eslint-plugin": "^5.59.11", - "@typescript-eslint/parser": "^5.59.11", - "eslint": "^8.42.0", - "eslint-config-prettier": "^8.8.0", + "@types/jest": "^29.5.5", + "@types/mime-types": "^2.1.2", + "@types/node": "^20.8.6", + "@types/supertest": "^2.0.14", + "@types/uuid": "^9.0.5", + "@types/ws": "^8.5.7", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "eslint": "^8.51.0", + "eslint-config-prettier": "^8.10.0", "eslint-plugin-prettier": "^4.2.1", - "jest": "^29.5.0", + "jest": "^29.7.0", "prettier": "^2.8.8", "source-map-support": "^0.5.21", "supertest": "^6.3.3", - "ts-jest": "^29.1.0", - "ts-loader": "^9.4.3", + "ts-jest": "^29.1.1", + "ts-loader": "^9.5.0", "ts-node": "^10.9.1", "tsconfig-paths": "^4.2.0", - "typescript": "^5.1.3" + "typescript": "^5.2.2" }, "jest": { "moduleFileExtensions": [ diff --git a/server/src/collaboration/extensions/persistence.extension.ts b/server/src/collaboration/extensions/persistence.extension.ts index 798df8c0..0ec2d771 100644 --- a/server/src/collaboration/extensions/persistence.extension.ts +++ b/server/src/collaboration/extensions/persistence.extension.ts @@ -1,4 +1,8 @@ -import { Extension, onLoadDocumentPayload, onStoreDocumentPayload } from '@hocuspocus/server'; +import { + Extension, + onLoadDocumentPayload, + onStoreDocumentPayload, +} from '@hocuspocus/server'; import * as Y from 'yjs'; import { PageService } from '../../core/page/services/page.service'; import { Injectable } from '@nestjs/common'; @@ -24,6 +28,8 @@ export class PersistenceExtension implements Extension { } if (page.ydoc) { + console.log('ydoc loaded from db'); + const doc = new Y.Doc(); const dbState = new Uint8Array(page.ydoc); @@ -32,10 +38,16 @@ export class PersistenceExtension implements Extension { } // if no ydoc state in db convert json in page.content to Ydoc. - const ydoc = TiptapTransformer.toYdoc(page.content, 'default'); + if (page.content) { + console.log('converting json to ydoc'); - Y.encodeStateAsUpdate(ydoc); - return ydoc; + const ydoc = TiptapTransformer.toYdoc(page.content, 'default'); + Y.encodeStateAsUpdate(ydoc); + return ydoc; + } + + console.log('creating fresh ydoc'); + return new Y.Doc(); } async onStoreDocument(data: onStoreDocumentPayload) { @@ -47,11 +59,7 @@ export class PersistenceExtension implements Extension { const ydocState = Buffer.from(Y.encodeStateAsUpdate(document)); try { - await this.pageService.updateState( - pageId, - tiptapJson, - ydocState, - ); + await this.pageService.updateState(pageId, tiptapJson, ydocState); } catch (err) { console.error(`Failed to update page ${documentName}`); }