From 5406e7cf35fd006dd0a38e2fe4d7614be41b1fd7 Mon Sep 17 00:00:00 2001 From: Alexey Safronov Date: Tue, 9 Jan 2024 20:25:50 +0400 Subject: [PATCH] Applied server action to get config --- package.json | 2 +- packages/doceditor/next.config.js | 11 +- packages/doceditor/package.json | 12 +- packages/doceditor/src/app/actions.ts | 35 +++ packages/doceditor/src/app/doceditor/page.tsx | 227 ------------------ packages/doceditor/src/app/layout.css | 0 packages/doceditor/src/app/midlleware.ts | 12 + packages/doceditor/src/app/page.module.css | 7 + packages/doceditor/src/app/page.tsx | 22 +- packages/doceditor/src/components/Editor.tsx | 26 ++ packages/doceditor/tsconfig.json | 3 +- .../src/server/config/config-deploy.json | 2 +- yarn.lock | 3 +- 13 files changed, 122 insertions(+), 240 deletions(-) create mode 100644 packages/doceditor/src/app/actions.ts delete mode 100644 packages/doceditor/src/app/doceditor/page.tsx create mode 100644 packages/doceditor/src/app/layout.css create mode 100644 packages/doceditor/src/app/midlleware.ts create mode 100644 packages/doceditor/src/app/page.module.css create mode 100644 packages/doceditor/src/components/Editor.tsx diff --git a/package.json b/package.json index 374a0e4df2..1945d5ea1c 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "bump": "yarn version apply --all", "clean": "yarn workspaces foreach -vptiR run clean", "deploy": "shx rm -rf ../publish/web && yarn workspaces foreach -ptR --from '{@docspace/client,@docspace/login,@docspace/editor,@docspace/management}' run deploy && shx cp -r public ../publish/web/ && node common/scripts/minify-common-locales.js", - "start": "node ./common/scripts/before-build.js && yarn workspaces foreach -vptiR --from '{@docspace/client,@docspace/login,@docspace/editor,@docspace/management}' run start", + "start": "node ./common/scripts/before-build.js && yarn workspaces foreach -vptiR --from '{@docspace/client,@docspace/login,@docspace/doceditor,@docspace/management}' run start", "start-prod": "yarn workspaces foreach -vptiR --from '{@docspace/client,@docspace/login,@docspace/editor,@docspace/management}' run start-prod", "storybook": "yarn workspace @docspace/shared storybook", "storybook-build": "yarn workspace @docspace/shared run storybook-build", diff --git a/packages/doceditor/next.config.js b/packages/doceditor/next.config.js index 767719fc4f..1c18ca80b8 100644 --- a/packages/doceditor/next.config.js +++ b/packages/doceditor/next.config.js @@ -1,4 +1,11 @@ /** @type {import('next').NextConfig} */ -const nextConfig = {} +const nextConfig = { + basePath: "/doceditor", + logging: { + fetches: { + fullUrl: true, + }, + }, +}; -module.exports = nextConfig +module.exports = nextConfig; diff --git a/packages/doceditor/package.json b/packages/doceditor/package.json index 47a57f9704..d78bfa12df 100644 --- a/packages/doceditor/package.json +++ b/packages/doceditor/package.json @@ -3,16 +3,18 @@ "version": "2.0.1", "private": true, "scripts": { - "dev": "next dev -p 5013", "build": "next build", - "start": "next start -p 5013", + "start": "next dev -p 5013", + "start-prod": "next start -p 5013", "lint": "next lint" }, "dependencies": { + "@onlyoffice/document-editor-react": "^1.3.0", "next": "14.0.4", - "react": "^18", - "react-dom": "^18", - "@onlyoffice/document-editor-react": "^1.3.0" + "mobx": "^6.8.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "styled-components": "^5.3.9" }, "devDependencies": { "@types/node": "^20", diff --git a/packages/doceditor/src/app/actions.ts b/packages/doceditor/src/app/actions.ts new file mode 100644 index 0000000000..6e67c28b48 --- /dev/null +++ b/packages/doceditor/src/app/actions.ts @@ -0,0 +1,35 @@ +"use server"; +import { cookies, headers } from "next/headers"; +import IConfig from "@onlyoffice/document-editor-react/dist/esm/model/config"; + +export async function getData( + fileId: string + //fileVersion: string | undefined, + //doc: string | undefined, + //view: boolean, + //shareKey: string | undefined +) { + const token = cookies().get("asc_auth_key"); + + const host = headers().get("x-forwarded-host"); + const proto = headers().get("x-forwarded-proto"); + + let headersList = new Headers({ + "Content-Type": "application/json", + }); + + if (token?.value) { + headersList.append("Authorization", token.value); + } + + const res = await fetch( + `${proto}://${host}/api/2.0/files/file/${fileId}/openedit`, + { + headers: headersList, + } + ); + + const { response } = await res.json(); + + return response as IConfig; +} diff --git a/packages/doceditor/src/app/doceditor/page.tsx b/packages/doceditor/src/app/doceditor/page.tsx deleted file mode 100644 index ce9b5ea35d..0000000000 --- a/packages/doceditor/src/app/doceditor/page.tsx +++ /dev/null @@ -1,227 +0,0 @@ -"use client"; - -import { DocumentEditor } from "@onlyoffice/document-editor-react"; - -const config = { - document: { - fileType: "docx", - info: { - favorite: false, - folder: "My documents", - owner: "Me", - sharingSettings: [ - { - user: "Me", - permissions: "Full Access", - }, - ], - type: 0, - uploaded: "12/19/2023 09:21", - }, - isLinkedForMe: false, - key: "3Qs7f_MQw6HAEVMqehSBQfDeEKQqGs1C1_M33kzGs6k_", - permissions: { - changeHistory: false, - comment: true, - download: true, - edit: true, - fillForms: false, - modifyFilter: true, - print: true, - rename: true, - review: true, - copy: true, - }, - referenceData: { - fileKey: 653796, - instanceId: "184", - }, - title: "Новый документ.docx", - url: "https://uzbekistan.onlyoffice.io/filehandler.ashx?action=stream&fileid=653796&stream_auth=442188823390.YQYQKUZDSU44WDVLAKKFPWPJGV0NW4HOSGDN7ZN2U", - }, - documentType: "word", - editorConfig: { - callbackUrl: - "https://uzbekistan.onlyoffice.io/filehandler.ashx?action=track&fileid=653796&stream_auth=442188823446.GJEL2CARK4MK5M5XOYBEPV33AJXRIF7GRT7PYY3LKW", - createUrl: - "https://uzbekistan.onlyoffice.io/filehandler.ashx?action=create&doctype=word&title=New+Document", - customization: { - about: true, - feedback: { - url: "https://helpdesk.onlyoffice.com", - visible: true, - }, - forcesave: true, - goback: { - url: "https://uzbekistan.onlyoffice.io/#11240", - }, - logo: { - image: - "https://uzbekistan.onlyoffice.io/static/images/logo/docseditor.svg", - imageDark: - "https://uzbekistan.onlyoffice.io/static/images/logo/docseditor.svg", - url: "https://uzbekistan.onlyoffice.io/", - }, - mentionShare: true, - submitForm: false, - }, - lang: "en-GB", - mode: "edit", - modeWrite: true, - plugins: { - pluginsData: [], - }, - recent: [ - { - folder: "Public room", - title: "sample.pdf", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=649535", - }, - { - folder: "Tashkent", - title: "DWSample1-DOC.docx", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=645728", - }, - { - folder: "Tashkent", - title: "Новый документ.docx", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=646369", - }, - { - folder: "My documents", - title: "New document.docx", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=648031", - }, - { - folder: "New folder", - title: "Новый документ.docx", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=653629", - }, - { - folder: "My documents", - title: "DocSpace - users.pdf", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=646795", - }, - { - folder: "My documents", - title: "200MB-TESTFILE.ORG.pdf", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=653358", - }, - { - folder: "My documents", - title: "مستند جديد.docx", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=647760", - }, - { - folder: "My documents", - title: "DWSample1.DOC.docx", - url: "https://uzbekistan.onlyoffice.io/doceditor?fileid=646801", - }, - ], - templates: [], - user: { - id: "7ea27dbc-e760-4832-bd23-960c46cae082", - name: "Alexey Safronov", - }, - }, - editorType: 0, - editorUrl: "https://asc.docs.teamlab.info/web-apps/apps/api/documents/api.js", - token: - "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkb2N1bWVudCI6eyJmaWxlVHlwZSI6ImRvY3giLCJpbmZvIjp7ImZhdm9yaXRlIjpmYWxzZSwiZm9sZGVyIjoiTXkgZG9jdW1lbnRzIiwib3duZXIiOiJNZSIsInNoYXJpbmdTZXR0aW5ncyI6W3sidXNlciI6Ik1lIiwicGVybWlzc2lvbnMiOiJGdWxsIEFjY2VzcyJ9XSwidHlwZSI6MCwidXBsb2FkZWQiOiIxMi8xOS8yMDIzIDA5OjIxIn0sImlzTGlua2VkRm9yTWUiOmZhbHNlLCJrZXkiOiIzUXM3Zl9NUXc2SEFFVk1xZWhTQlFmRGVFS1FxR3MxQzFfTTMza3pHczZrXyIsInBlcm1pc3Npb25zIjp7ImNoYW5nZUhpc3RvcnkiOmZhbHNlLCJjb21tZW50Ijp0cnVlLCJkb3dubG9hZCI6dHJ1ZSwiZWRpdCI6dHJ1ZSwiZmlsbEZvcm1zIjpmYWxzZSwibW9kaWZ5RmlsdGVyIjp0cnVlLCJwcmludCI6dHJ1ZSwicmVuYW1lIjp0cnVlLCJyZXZpZXciOnRydWUsImNvcHkiOnRydWV9LCJyZWZlcmVuY2VEYXRhIjp7ImZpbGVLZXkiOjY1Mzc5NiwiaW5zdGFuY2VJZCI6IjE4NCJ9LCJ0aXRsZSI6Ilx1MDQxRFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzOSBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIuZG9jeCIsInVybCI6Imh0dHBzOi8vdXpiZWtpc3Rhbi5vbmx5b2ZmaWNlLmlvL2ZpbGVoYW5kbGVyLmFzaHg_YWN0aW9uPXN0cmVhbVx1MDAyNmZpbGVpZD02NTM3OTZcdTAwMjZzdHJlYW1fYXV0aD00NDIxODg4MjMzOTAuWVFZUUtVWkRTVTQ0V0RWTEFLS0ZQV1BKR1YwTlc0SE9TR0RON1pOMlUifSwiZG9jdW1lbnRUeXBlIjoid29yZCIsImVkaXRvckNvbmZpZyI6eyJjYWxsYmFja1VybCI6Imh0dHBzOi8vdXpiZWtpc3Rhbi5vbmx5b2ZmaWNlLmlvL2ZpbGVoYW5kbGVyLmFzaHg_YWN0aW9uPXRyYWNrXHUwMDI2ZmlsZWlkPTY1Mzc5Nlx1MDAyNnN0cmVhbV9hdXRoPTQ0MjE4ODgyMzM5My5MMDZWUlA5U1ZXQkxZNlVMUUZLVFZMRUtWMFM2OEpQTTM0RzhQSFhFTUUiLCJjcmVhdGVVcmwiOiJodHRwczovL3V6YmVraXN0YW4ub25seW9mZmljZS5pby9maWxlaGFuZGxlci5hc2h4P2FjdGlvbj1jcmVhdGVcdTAwMjZkb2N0eXBlPXdvcmRcdTAwMjZ0aXRsZT1OZXdcdTAwMkJEb2N1bWVudCIsImN1c3RvbWl6YXRpb24iOnsiYWJvdXQiOnRydWUsImZlZWRiYWNrIjp7InVybCI6Imh0dHBzOi8vaGVscGRlc2sub25seW9mZmljZS5jb20iLCJ2aXNpYmxlIjp0cnVlfSwiZm9yY2VzYXZlIjp0cnVlLCJnb2JhY2siOnsidXJsIjoiaHR0cHM6Ly91emJla2lzdGFuLm9ubHlvZmZpY2UuaW8vIzExMjQwIn0sImxvZ28iOnsiaW1hZ2UiOiJodHRwczovL3V6YmVraXN0YW4ub25seW9mZmljZS5pby9zdGF0aWMvaW1hZ2VzL2xvZ28vZG9jc2VkaXRvci5zdmciLCJpbWFnZURhcmsiOiJodHRwczovL3V6YmVraXN0YW4ub25seW9mZmljZS5pby9zdGF0aWMvaW1hZ2VzL2xvZ28vZG9jc2VkaXRvci5zdmciLCJ1cmwiOiJodHRwczovL3V6YmVraXN0YW4ub25seW9mZmljZS5pby8ifSwibWVudGlvblNoYXJlIjp0cnVlLCJzdWJtaXRGb3JtIjpmYWxzZX0sImxhbmciOiJlbi1HQiIsIm1vZGUiOiJlZGl0IiwibW9kZVdyaXRlIjp0cnVlLCJwbHVnaW5zIjp7InBsdWdpbnNEYXRhIjpbXX0sInJlY2VudCI6W3siZm9sZGVyIjoiUHVibGljIHJvb20iLCJ0aXRsZSI6InNhbXBsZS5wZGYiLCJ1cmwiOiJodHRwczovL3V6YmVraXN0YW4ub25seW9mZmljZS5pby9kb2NlZGl0b3I_ZmlsZWlkPTY0OTUzNSJ9LHsiZm9sZGVyIjoiVGFzaGtlbnQiLCJ0aXRsZSI6IkRXU2FtcGxlMS1ET0MuZG9jeCIsInVybCI6Imh0dHBzOi8vdXpiZWtpc3Rhbi5vbmx5b2ZmaWNlLmlvL2RvY2VkaXRvcj9maWxlaWQ9NjQ1NzI4In0seyJmb2xkZXIiOiJUYXNoa2VudCIsInRpdGxlIjoiXHUwNDFEXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5IFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mi5kb2N4IiwidXJsIjoiaHR0cHM6Ly91emJla2lzdGFuLm9ubHlvZmZpY2UuaW8vZG9jZWRpdG9yP2ZpbGVpZD02NDYzNjkifSx7ImZvbGRlciI6Ik15IGRvY3VtZW50cyIsInRpdGxlIjoiTmV3IGRvY3VtZW50LmRvY3giLCJ1cmwiOiJodHRwczovL3V6YmVraXN0YW4ub25seW9mZmljZS5pby9kb2NlZGl0b3I_ZmlsZWlkPTY0ODAzMSJ9LHsiZm9sZGVyIjoiTmV3IGZvbGRlciIsInRpdGxlIjoiXHUwNDFEXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5IFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mi5kb2N4IiwidXJsIjoiaHR0cHM6Ly91emJla2lzdGFuLm9ubHlvZmZpY2UuaW8vZG9jZWRpdG9yP2ZpbGVpZD02NTM2MjkifSx7ImZvbGRlciI6Ik15IGRvY3VtZW50cyIsInRpdGxlIjoiRG9jU3BhY2UgLSB1c2Vycy5wZGYiLCJ1cmwiOiJodHRwczovL3V6YmVraXN0YW4ub25seW9mZmljZS5pby9kb2NlZGl0b3I_ZmlsZWlkPTY0Njc5NSJ9LHsiZm9sZGVyIjoiTXkgZG9jdW1lbnRzIiwidGl0bGUiOiIyMDBNQi1URVNURklMRS5PUkcucGRmIiwidXJsIjoiaHR0cHM6Ly91emJla2lzdGFuLm9ubHlvZmZpY2UuaW8vZG9jZWRpdG9yP2ZpbGVpZD02NTMzNTgifSx7ImZvbGRlciI6Ik15IGRvY3VtZW50cyIsInRpdGxlIjoiXHUwNjQ1XHUwNjMzXHUwNjJBXHUwNjQ2XHUwNjJGIFx1MDYyQ1x1MDYyRlx1MDY0QVx1MDYyRi5kb2N4IiwidXJsIjoiaHR0cHM6Ly91emJla2lzdGFuLm9ubHlvZmZpY2UuaW8vZG9jZWRpdG9yP2ZpbGVpZD02NDc3NjAifSx7ImZvbGRlciI6Ik15IGRvY3VtZW50cyIsInRpdGxlIjoiRFdTYW1wbGUxLkRPQy5kb2N4IiwidXJsIjoiaHR0cHM6Ly91emJla2lzdGFuLm9ubHlvZmZpY2UuaW8vZG9jZWRpdG9yP2ZpbGVpZD02NDY4MDEifV0sInRlbXBsYXRlcyI6W10sInVzZXIiOnsiaWQiOiI3ZWEyN2RiYy1lNzYwLTQ4MzItYmQyMy05NjBjNDZjYWUwODIiLCJuYW1lIjoiQWxleGV5IFNhZnJvbm92In19LCJlZGl0b3JUeXBlIjowLCJ0eXBlIjoiZGVza3RvcCJ9.UYNppb17PyrszOMqgQbOq_BpF93EHcYgWxvNX2HGySQ", - type: "desktop", - file: { - folderId: 11240, - version: 2, - versionGroup: 2, - contentLength: "24.35 KB", - pureContentLength: 24932, - fileStatus: 1, - mute: false, - viewUrl: - "https://uzbekistan.onlyoffice.io/filehandler.ashx?action=download&fileid=653796", - webUrl: - "https://uzbekistan.onlyoffice.io/doceditor?fileid=653796&version=2", - fileType: 7, - fileExst: ".docx", - comment: "Edited", - thumbnailStatus: 2, - denyDownload: false, - denySharing: false, - viewAccessibility: { - ImageView: false, - MediaView: false, - WebView: true, - WebEdit: true, - WebReview: true, - WebCustomFilterEditing: false, - WebRestrictedEditing: false, - WebComment: true, - CoAuhtoring: true, - CanConvert: true, - MustConvert: false, - }, - id: 653796, - rootFolderId: 11240, - canShare: true, - security: { - Read: true, - Comment: true, - FillForms: true, - Review: true, - Edit: true, - Delete: true, - CustomFilter: true, - Rename: true, - ReadHistory: true, - Lock: false, - EditHistory: true, - Copy: true, - Move: true, - Duplicate: true, - SubmitToFormGallery: false, - Download: true, - Convert: true, - }, - title: "Новый документ.docx", - access: 0, - shared: false, - created: "2023-12-19T09:21:40.0000000+04:00", - createdBy: { - id: "7ea27dbc-e760-4832-bd23-960c46cae082", - displayName: "Alexey Safronov", - avatarSmall: - "/storage/userPhotos/root/7ea27dbc-e760-4832-bd23-960c46cae082_size_32-32.png?hash=1212195127", - profileUrl: - "https://uzbekistan.onlyoffice.io/accounts/view/alexey.safronov", - hasAvatar: true, - }, - updated: "2023-12-21T12:34:38.0000000+04:00", - rootFolderType: 5, - updatedBy: { - id: "7ea27dbc-e760-4832-bd23-960c46cae082", - displayName: "Alexey Safronov", - avatarSmall: - "/storage/userPhotos/root/7ea27dbc-e760-4832-bd23-960c46cae082_size_32-32.png?hash=1212195127", - profileUrl: - "https://uzbekistan.onlyoffice.io/accounts/view/alexey.safronov", - hasAvatar: true, - }, - }, -}; - -export default function Home() { - function onDocumentReady(event: object): void { - throw new Error("Function not implemented."); - } - - return ( - - ); -} diff --git a/packages/doceditor/src/app/layout.css b/packages/doceditor/src/app/layout.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/doceditor/src/app/midlleware.ts b/packages/doceditor/src/app/midlleware.ts new file mode 100644 index 0000000000..17d647b629 --- /dev/null +++ b/packages/doceditor/src/app/midlleware.ts @@ -0,0 +1,12 @@ +import { NextResponse } from "next/server"; +import type { NextRequest } from "next/server"; + +// This function can be marked `async` if using `await` inside +export function middleware(request: NextRequest) { + return NextResponse.redirect(new URL("/doceditor", request.url)); +} + +// See "Matching Paths" below to learn more +export const config = { + matcher: "/", +}; diff --git a/packages/doceditor/src/app/page.module.css b/packages/doceditor/src/app/page.module.css new file mode 100644 index 0000000000..67e3612048 --- /dev/null +++ b/packages/doceditor/src/app/page.module.css @@ -0,0 +1,7 @@ +.main { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + min-height: 100vh; +} diff --git a/packages/doceditor/src/app/page.tsx b/packages/doceditor/src/app/page.tsx index effe292cd9..67533cd64d 100644 --- a/packages/doceditor/src/app/page.tsx +++ b/packages/doceditor/src/app/page.tsx @@ -1,5 +1,23 @@ +import Editor from "@/components/Editor"; +// import { +// openEdit, +// // getSettingsFiles, +// // getShareFiles, +// } from "@docspace/common/api/editor"; + +import { getData } from "./actions"; import { redirect } from "next/navigation"; -export default async function Home() { - redirect("/doceditor"); +export default async function Page({ + searchParams, +}: { + searchParams?: { [key: string]: string | undefined }; +}) { + const { fileId } = searchParams || { fileId: undefined }; + + if (!fileId) return redirect("/error"); + + const config = await getData(fileId); + + return ; } diff --git a/packages/doceditor/src/components/Editor.tsx b/packages/doceditor/src/components/Editor.tsx new file mode 100644 index 0000000000..00ae80e29e --- /dev/null +++ b/packages/doceditor/src/components/Editor.tsx @@ -0,0 +1,26 @@ +"use client"; +import { DocumentEditor } from "@onlyoffice/document-editor-react"; +import IConfig from "@onlyoffice/document-editor-react/dist/esm/model/config"; + +const Editor = ({ config }: { config: IConfig }) => { + const onDocumentReady = (event: object): void => { + throw new Error("Function not implemented."); + }; + + //console.log({ config }); + + const documentserverUrl = "http://192.168.1.65/ds-vpath"; //TODO: replace to api url + + return ( + + ); +}; + +export default Editor; diff --git a/packages/doceditor/tsconfig.json b/packages/doceditor/tsconfig.json index e59724b283..792f7b04b5 100644 --- a/packages/doceditor/tsconfig.json +++ b/packages/doceditor/tsconfig.json @@ -19,7 +19,8 @@ } ], "paths": { - "@/*": ["./src/*"] + "@/*": ["./src/*"], + "PUBLIC_DIR/*": ["../../public/*"] } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], diff --git a/packages/editor/src/server/config/config-deploy.json b/packages/editor/src/server/config/config-deploy.json index ea340ed123..9093492a9c 100644 --- a/packages/editor/src/server/config/config-deploy.json +++ b/packages/editor/src/server/config/config-deploy.json @@ -1,5 +1,5 @@ { - "PORT": "6013", + "PORT": "5013", "app": { "appsettings": "../../../buildtools/config" } diff --git a/yarn.lock b/yarn.lock index 9524cd5995..6131ae40bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3034,6 +3034,7 @@ __metadata: version: 0.0.0-use.local resolution: "@docspace/doceditor@workspace:packages/doceditor" dependencies: + "@onlyoffice/document-editor-react": ^1.3.0 "@types/node": ^20 "@types/react": ^18 "@types/react-dom": ^18 @@ -4970,7 +4971,7 @@ __metadata: languageName: node linkType: hard -"@onlyoffice/document-editor-react@npm:1.3.0": +"@onlyoffice/document-editor-react@npm:1.3.0, @onlyoffice/document-editor-react@npm:^1.3.0": version: 1.3.0 resolution: "@onlyoffice/document-editor-react@npm:1.3.0" peerDependencies: