update dependencies

This commit is contained in:
Philipinho
2023-10-19 15:28:56 +01:00
parent d5b9a9dc4a
commit acaf7ba95d
2 changed files with 47 additions and 40 deletions

View File

@ -27,24 +27,24 @@
"migration:show": "npm run typeorm migration:show" "migration:show": "npm run typeorm migration:show"
}, },
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.417.0", "@aws-sdk/client-s3": "^3.431.0",
"@aws-sdk/s3-request-presigner": "^3.418.0", "@aws-sdk/s3-request-presigner": "^3.431.0",
"@hocuspocus/server": "^2.5.0", "@hocuspocus/server": "^2.7.0",
"@hocuspocus/transformer": "^2.5.0", "@hocuspocus/transformer": "^2.7.0",
"@nestjs/common": "^10.0.0", "@nestjs/common": "^10.2.7",
"@nestjs/config": "^3.0.0", "@nestjs/config": "^3.1.1",
"@nestjs/core": "^10.0.0", "@nestjs/core": "^10.2.7",
"@nestjs/jwt": "^10.1.0", "@nestjs/jwt": "^10.1.1",
"@nestjs/mapped-types": "^2.0.2", "@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-socket.io": "^10.2.7",
"@nestjs/platform-ws": "^10.2.4", "@nestjs/platform-ws": "^10.2.7",
"@nestjs/typeorm": "^10.0.0", "@nestjs/typeorm": "^10.0.0",
"@nestjs/websockets": "^10.2.7", "@nestjs/websockets": "^10.2.7",
"bcrypt": "^5.1.1", "bcrypt": "^5.1.1",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.14.0", "class-validator": "^0.14.0",
"fastify": "^4.22.2", "fastify": "^4.24.2",
"fs-extra": "^11.1.1", "fs-extra": "^11.1.1",
"mime-types": "^2.1.35", "mime-types": "^2.1.35",
"pg": "^8.11.3", "pg": "^8.11.3",
@ -52,36 +52,35 @@
"rxjs": "^7.8.1", "rxjs": "^7.8.1",
"socket.io": "^4.7.2", "socket.io": "^4.7.2",
"typeorm": "^0.3.17", "typeorm": "^0.3.17",
"uuid": "^9.0.0", "uuid": "^9.0.1",
"ws": "^8.14.1" "ws": "^8.14.2"
}, },
"devDependencies": { "devDependencies": {
"@nestjs/cli": "^10.0.0", "@nestjs/cli": "^10.1.18",
"@nestjs/schematics": "^10.0.0", "@nestjs/schematics": "^10.0.2",
"@nestjs/testing": "^10.0.0", "@nestjs/testing": "^10.2.7",
"@types/bcrypt": "^5.0.0", "@types/bcrypt": "^5.0.0",
"@types/express": "^4.17.17",
"@types/fs-extra": "^11.0.2", "@types/fs-extra": "^11.0.2",
"@types/jest": "^29.5.2", "@types/jest": "^29.5.5",
"@types/mime-types": "^2.1.1", "@types/mime-types": "^2.1.2",
"@types/node": "^20.3.1", "@types/node": "^20.8.6",
"@types/supertest": "^2.0.12", "@types/supertest": "^2.0.14",
"@types/uuid": "^9.0.3", "@types/uuid": "^9.0.5",
"@types/ws": "^8.5.5", "@types/ws": "^8.5.7",
"@typescript-eslint/eslint-plugin": "^5.59.11", "@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.59.11", "@typescript-eslint/parser": "^5.62.0",
"eslint": "^8.42.0", "eslint": "^8.51.0",
"eslint-config-prettier": "^8.8.0", "eslint-config-prettier": "^8.10.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"jest": "^29.5.0", "jest": "^29.7.0",
"prettier": "^2.8.8", "prettier": "^2.8.8",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
"supertest": "^6.3.3", "supertest": "^6.3.3",
"ts-jest": "^29.1.0", "ts-jest": "^29.1.1",
"ts-loader": "^9.4.3", "ts-loader": "^9.5.0",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0", "tsconfig-paths": "^4.2.0",
"typescript": "^5.1.3" "typescript": "^5.2.2"
}, },
"jest": { "jest": {
"moduleFileExtensions": [ "moduleFileExtensions": [

View File

@ -1,4 +1,8 @@
import { Extension, onLoadDocumentPayload, onStoreDocumentPayload } from '@hocuspocus/server'; import {
Extension,
onLoadDocumentPayload,
onStoreDocumentPayload,
} from '@hocuspocus/server';
import * as Y from 'yjs'; import * as Y from 'yjs';
import { PageService } from '../../core/page/services/page.service'; import { PageService } from '../../core/page/services/page.service';
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
@ -24,6 +28,8 @@ export class PersistenceExtension implements Extension {
} }
if (page.ydoc) { if (page.ydoc) {
console.log('ydoc loaded from db');
const doc = new Y.Doc(); const doc = new Y.Doc();
const dbState = new Uint8Array(page.ydoc); const dbState = new Uint8Array(page.ydoc);
@ -32,12 +38,18 @@ export class PersistenceExtension implements Extension {
} }
// if no ydoc state in db convert json in page.content to Ydoc. // 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');
const ydoc = TiptapTransformer.toYdoc(page.content, 'default');
Y.encodeStateAsUpdate(ydoc); Y.encodeStateAsUpdate(ydoc);
return ydoc; return ydoc;
} }
console.log('creating fresh ydoc');
return new Y.Doc();
}
async onStoreDocument(data: onStoreDocumentPayload) { async onStoreDocument(data: onStoreDocumentPayload) {
const { documentName, document, context } = data; const { documentName, document, context } = data;
@ -47,11 +59,7 @@ export class PersistenceExtension implements Extension {
const ydocState = Buffer.from(Y.encodeStateAsUpdate(document)); const ydocState = Buffer.from(Y.encodeStateAsUpdate(document));
try { try {
await this.pageService.updateState( await this.pageService.updateState(pageId, tiptapJson, ydocState);
pageId,
tiptapJson,
ydocState,
);
} catch (err) { } catch (err) {
console.error(`Failed to update page ${documentName}`); console.error(`Failed to update page ${documentName}`);
} }