From c0149f7a76eba42478da33c88ce47eecb428aeb4 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Fri, 8 Mar 2024 15:33:00 +0100 Subject: [PATCH 1/8] Add sse file locked/unlocked event --- packages/web-client/src/sse.ts | 4 +- .../web-runtime/src/container/bootstrap.ts | 21 ++++++- packages/web-runtime/src/container/sse.ts | 61 +++++++++++++++++++ 3 files changed, 84 insertions(+), 2 deletions(-) diff --git a/packages/web-client/src/sse.ts b/packages/web-client/src/sse.ts index 8142dd23f8d..6a25b66078f 100644 --- a/packages/web-client/src/sse.ts +++ b/packages/web-client/src/sse.ts @@ -3,7 +3,9 @@ import { fetchEventSource, FetchEventSourceInit } from '@microsoft/fetch-event-s export enum MESSAGE_TYPE { NOTIFICATION = 'userlog-notification', POSTPROCESSING_FINISHED = 'postprocessing-finished', - ITEM_RENAMED = 'item-renamed' + ITEM_RENAMED = 'item-renamed', + FILE_LOCKED = 'file-locked', + FILE_UNLOCKED = 'file-unlocked' } export class RetriableError extends Error { diff --git a/packages/web-runtime/src/container/bootstrap.ts b/packages/web-runtime/src/container/bootstrap.ts index 857c2b34205..1628c6f94b5 100644 --- a/packages/web-runtime/src/container/bootstrap.ts +++ b/packages/web-runtime/src/container/bootstrap.ts @@ -55,7 +55,12 @@ import { RawConfigSchema, SentryConfig } from '@ownclouders/web-pkg/src/composables/piniaStores/config/types' -import { onSSEItemRenamedEvent, onSSEProcessingFinishedEvent } from './sse' +import { + onSSEFileLockedEvent, + onSSEFileUnlockedEvent, + onSSEItemRenamedEvent, + onSSEProcessingFinishedEvent +} from './sse' const getEmbedConfigFromQuery = ( doesEmbedEnabledOptionExists: boolean @@ -685,6 +690,20 @@ export const registerSSEEventListeners = ({ resourceQueue }) ) + + clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.FILE_LOCKED, (msg) => + onSSEFileLockedEvent({ + resourcesStore, + msg + }) + ) + + clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.FILE_UNLOCKED, (msg) => + onSSEFileUnlockedEvent({ + resourcesStore, + msg + }) + ) } export const setViewOptions = ({ resourcesStore }: { resourcesStore: ResourcesStore }) => { diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index cd324d4389c..45eb01a9d4d 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -109,6 +109,67 @@ export const onSSEItemRenamedEvent = async ({ console.error('Unable to parse sse event item renamed data', e) } } + +export const onSSEFileLockedEvent = async ({ + resourcesStore, + msg +}: { + resourcesStore: ResourcesStore + msg: MessageEvent +}) => { + try { + const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) + + if (!itemInCurrentFolder({ resourcesStore, sseData })) { + return false + } + + const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) + + if (!resource) { + return + } + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'locked', + value: true + }) + } catch (e) { + console.error('Unable to parse sse event file locked data', e) + } +} + +export const onSSEFileUnlockedEvent = async ({ + resourcesStore, + msg +}: { + resourcesStore: ResourcesStore + msg: MessageEvent +}) => { + try { + const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) + + if (!itemInCurrentFolder({ resourcesStore, sseData })) { + return false + } + + const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) + + if (!resource) { + return + } + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'locked', + value: false + }) + } catch (e) { + console.error('Unable to parse sse event file locked data', e) + } +} + export const onSSEProcessingFinishedEvent = async ({ resourcesStore, spacesStore, From 3b7d04ae3c6a3040fa23ba219f85790b8a19eb00 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Fri, 8 Mar 2024 15:35:14 +0100 Subject: [PATCH 2/8] Fix event name --- packages/web-runtime/src/container/sse.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index 45eb01a9d4d..8dbc169437a 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -110,7 +110,7 @@ export const onSSEItemRenamedEvent = async ({ } } -export const onSSEFileLockedEvent = async ({ +export const onSSEFileLockedEvent = ({ resourcesStore, msg }: { @@ -140,7 +140,7 @@ export const onSSEFileLockedEvent = async ({ } } -export const onSSEFileUnlockedEvent = async ({ +export const onSSEFileUnlockedEvent = ({ resourcesStore, msg }: { @@ -166,7 +166,7 @@ export const onSSEFileUnlockedEvent = async ({ value: false }) } catch (e) { - console.error('Unable to parse sse event file locked data', e) + console.error('Unable to parse sse event file unlocked data', e) } } From 6a7a71e728bcc13b48b3c246d9bb0061165afd47 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Mon, 11 Mar 2024 10:29:59 +0100 Subject: [PATCH 3/8] Partial fix, waiting for backend changes --- packages/web-runtime/src/container/sse.ts | 56 ++++++++++++++++++----- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index 8dbc169437a..957bea67c72 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -1,6 +1,7 @@ import { ClientService, createFileRouteOptions, + getIndicators, ImageDimension, PreviewService, ResourcesStore, @@ -10,6 +11,8 @@ import PQueue from 'p-queue' import { extractNodeId, extractStorageId } from '@ownclouders/web-client/src/helpers' import { z } from 'zod' import { Router } from 'vue-router' +import { unref } from 'vue' +import { storeToRefs } from 'pinia' const fileReadyEventSchema = z.object({ itemid: z.string(), @@ -94,17 +97,7 @@ export const onSSEItemRenamedEvent = async ({ ) } - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'name', - value: updatedResource.name - }) - - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'path', - value: updatedResource.path - }) + resourcesStore.upsertResource(updatedResource) } catch (e) { console.error('Unable to parse sse event item renamed data', e) } @@ -119,11 +112,14 @@ export const onSSEFileLockedEvent = ({ }) => { try { const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) + console.log(sseData) if (!itemInCurrentFolder({ resourcesStore, sseData })) { return false } + console.log('In current') + const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) if (!resource) { @@ -135,6 +131,26 @@ export const onSSEFileLockedEvent = ({ field: 'locked', value: true }) + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'lockTime', + value: resource.lockTime + }) + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'lockOwnerName', + value: resource.lockOwnerName + }) + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'indicators', + value: getIndicators({ resource, ancestorMetaData: resourcesStore.ancestorMetaData }) + }) + + console.log(resource) } catch (e) { console.error('Unable to parse sse event file locked data', e) } @@ -165,6 +181,24 @@ export const onSSEFileUnlockedEvent = ({ field: 'locked', value: false }) + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'lockTime', + value: undefined + }) + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'lockOwnerName', + value: undefined + }) + + resourcesStore.updateResourceField({ + id: sseData.itemid, + field: 'indicators', + value: getIndicators({ resource, ancestorMetaData: resourcesStore.ancestorMetaData }) + }) } catch (e) { console.error('Unable to parse sse event file unlocked data', e) } From 6e909c44140d8dc120aa9d5528995d279ceddb76 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Mon, 11 Mar 2024 14:36:07 +0100 Subject: [PATCH 4/8] make it work --- .../web-runtime/src/container/bootstrap.ts | 8 +- packages/web-runtime/src/container/sse.ts | 79 ++++++++----------- 2 files changed, 38 insertions(+), 49 deletions(-) diff --git a/packages/web-runtime/src/container/bootstrap.ts b/packages/web-runtime/src/container/bootstrap.ts index 1628c6f94b5..6ce02e21a89 100644 --- a/packages/web-runtime/src/container/bootstrap.ts +++ b/packages/web-runtime/src/container/bootstrap.ts @@ -694,14 +694,18 @@ export const registerSSEEventListeners = ({ clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.FILE_LOCKED, (msg) => onSSEFileLockedEvent({ resourcesStore, - msg + spacesStore, + msg, + clientService, }) ) clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.FILE_UNLOCKED, (msg) => onSSEFileUnlockedEvent({ resourcesStore, - msg + spacesStore, + msg, + clientService, }) ) } diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index 957bea67c72..01db89352e0 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -103,65 +103,59 @@ export const onSSEItemRenamedEvent = async ({ } } -export const onSSEFileLockedEvent = ({ +export const onSSEFileLockedEvent = async ({ resourcesStore, - msg + spacesStore, + msg, + clientService }: { resourcesStore: ResourcesStore + spacesStore: SpacesStore msg: MessageEvent + clientService: ClientService }) => { try { const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) - console.log(sseData) if (!itemInCurrentFolder({ resourcesStore, sseData })) { return false } - console.log('In current') - const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) + const space = spacesStore.spaces.find((s) => s.id === resource.storageId) - if (!resource) { + if (!resource || !space) { return } - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'locked', - value: true - }) - - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'lockTime', - value: resource.lockTime - }) - - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'lockOwnerName', - value: resource.lockOwnerName + const updatedResource = await clientService.webdav.getFileInfo(space, { + fileId: sseData.itemid }) + resourcesStore.upsertResource(updatedResource) resourcesStore.updateResourceField({ - id: sseData.itemid, + id: updatedResource.id, field: 'indicators', - value: getIndicators({ resource, ancestorMetaData: resourcesStore.ancestorMetaData }) + value: getIndicators({ + resource: updatedResource, + ancestorMetaData: resourcesStore.ancestorMetaData + }) }) - - console.log(resource) } catch (e) { console.error('Unable to parse sse event file locked data', e) } } -export const onSSEFileUnlockedEvent = ({ +export const onSSEFileUnlockedEvent = async ({ resourcesStore, - msg + spacesStore, + msg, + clientService }: { resourcesStore: ResourcesStore + spacesStore: SpacesStore msg: MessageEvent + clientService: ClientService }) => { try { const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) @@ -171,33 +165,24 @@ export const onSSEFileUnlockedEvent = ({ } const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) + const space = spacesStore.spaces.find((s) => s.id === resource.storageId) - if (!resource) { + if (!resource || !space) { return } - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'locked', - value: false - }) - - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'lockTime', - value: undefined - }) - - resourcesStore.updateResourceField({ - id: sseData.itemid, - field: 'lockOwnerName', - value: undefined + const updatedResource = await clientService.webdav.getFileInfo(space, { + fileId: sseData.itemid }) + resourcesStore.upsertResource(updatedResource) resourcesStore.updateResourceField({ - id: sseData.itemid, + id: updatedResource.id, field: 'indicators', - value: getIndicators({ resource, ancestorMetaData: resourcesStore.ancestorMetaData }) + value: getIndicators({ + resource: updatedResource, + ancestorMetaData: resourcesStore.ancestorMetaData + }) }) } catch (e) { console.error('Unable to parse sse event file unlocked data', e) From ad0eb34ab3bd96590b74196690e12293ee4cb06a Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Mon, 11 Mar 2024 14:42:09 +0100 Subject: [PATCH 5/8] Lint --- packages/web-runtime/src/container/bootstrap.ts | 4 ++-- packages/web-runtime/src/container/sse.ts | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/web-runtime/src/container/bootstrap.ts b/packages/web-runtime/src/container/bootstrap.ts index 6ce02e21a89..8fa386ba7db 100644 --- a/packages/web-runtime/src/container/bootstrap.ts +++ b/packages/web-runtime/src/container/bootstrap.ts @@ -696,7 +696,7 @@ export const registerSSEEventListeners = ({ resourcesStore, spacesStore, msg, - clientService, + clientService }) ) @@ -705,7 +705,7 @@ export const registerSSEEventListeners = ({ resourcesStore, spacesStore, msg, - clientService, + clientService }) ) } diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index 01db89352e0..2f3d4768ccd 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -11,8 +11,6 @@ import PQueue from 'p-queue' import { extractNodeId, extractStorageId } from '@ownclouders/web-client/src/helpers' import { z } from 'zod' import { Router } from 'vue-router' -import { unref } from 'vue' -import { storeToRefs } from 'pinia' const fileReadyEventSchema = z.object({ itemid: z.string(), From 7b2fe2b97f57c149d982622714806396cc924e1f Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Mon, 11 Mar 2024 15:33:56 +0100 Subject: [PATCH 6/8] make code simpler --- packages/web-runtime/src/container/sse.ts | 33 ++++++----------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index 2f3d4768ccd..05f75459274 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -24,10 +24,10 @@ type SSEMessageData = { const itemInCurrentFolder = ({ resourcesStore, - sseData + parentFolderId }: { resourcesStore: ResourcesStore - sseData: SSEMessageData + parentFolderId: string }) => { const currentFolder = resourcesStore.currentFolder if (!currentFolder) { @@ -36,11 +36,11 @@ const itemInCurrentFolder = ({ if (!extractNodeId(currentFolder.id)) { // if we don't have a nodeId here, we have a space (root) as current folder and can only check against the storageId - if (currentFolder.id !== extractStorageId(sseData.parentitemid)) { + if (currentFolder.id !== extractStorageId(parentFolderId)) { return false } } else { - if (currentFolder.id !== sseData.parentitemid) { + if (currentFolder.id !== parentFolderId) { return false } } @@ -63,18 +63,11 @@ export const onSSEItemRenamedEvent = async ({ }) => { try { const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) - const currentFolder = resourcesStore.currentFolder const resourceIsCurrentFolder = currentFolder.id === sseData.itemid - - if (!resourceIsCurrentFolder && !itemInCurrentFolder({ resourcesStore, sseData })) { - return false - } - const resource = resourceIsCurrentFolder ? currentFolder : resourcesStore.resources.find((f) => f.id === sseData.itemid) - const space = spacesStore.spaces.find((s) => s.id === resource.storageId) if (!resource || !space) { @@ -97,7 +90,7 @@ export const onSSEItemRenamedEvent = async ({ resourcesStore.upsertResource(updatedResource) } catch (e) { - console.error('Unable to parse sse event item renamed data', e) + console.error('Unable to parse sse event item-renamed data', e) } } @@ -114,11 +107,6 @@ export const onSSEFileLockedEvent = async ({ }) => { try { const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) - - if (!itemInCurrentFolder({ resourcesStore, sseData })) { - return false - } - const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) const space = spacesStore.spaces.find((s) => s.id === resource.storageId) @@ -140,7 +128,7 @@ export const onSSEFileLockedEvent = async ({ }) }) } catch (e) { - console.error('Unable to parse sse event file locked data', e) + console.error('Unable to parse sse event file-locked data', e) } } @@ -157,11 +145,6 @@ export const onSSEFileUnlockedEvent = async ({ }) => { try { const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) - - if (!itemInCurrentFolder({ resourcesStore, sseData })) { - return false - } - const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) const space = spacesStore.spaces.find((s) => s.id === resource.storageId) @@ -183,7 +166,7 @@ export const onSSEFileUnlockedEvent = async ({ }) }) } catch (e) { - console.error('Unable to parse sse event file unlocked data', e) + console.error('Unable to parse sse event file-unlocked data', e) } } @@ -207,7 +190,7 @@ export const onSSEProcessingFinishedEvent = async ({ try { const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) - if (!itemInCurrentFolder({ resourcesStore, sseData })) { + if (!itemInCurrentFolder({ resourcesStore, parentFolderId: sseData.parentitemid })) { return false } From 0668396e305fa5d710fc6e851392b7064084ee64 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Mon, 11 Mar 2024 16:04:11 +0100 Subject: [PATCH 7/8] merge lock unlock event --- .../web-runtime/src/container/bootstrap.ts | 15 +++--- packages/web-runtime/src/container/sse.ts | 50 +++---------------- 2 files changed, 15 insertions(+), 50 deletions(-) diff --git a/packages/web-runtime/src/container/bootstrap.ts b/packages/web-runtime/src/container/bootstrap.ts index 8fa386ba7db..a082ce3c52e 100644 --- a/packages/web-runtime/src/container/bootstrap.ts +++ b/packages/web-runtime/src/container/bootstrap.ts @@ -55,12 +55,7 @@ import { RawConfigSchema, SentryConfig } from '@ownclouders/web-pkg/src/composables/piniaStores/config/types' -import { - onSSEFileLockedEvent, - onSSEFileUnlockedEvent, - onSSEItemRenamedEvent, - onSSEProcessingFinishedEvent -} from './sse' +import { onSSEFileLockingEvent, onSSEItemRenamedEvent, onSSEProcessingFinishedEvent } from './sse' const getEmbedConfigFromQuery = ( doesEmbedEnabledOptionExists: boolean @@ -672,6 +667,7 @@ export const registerSSEEventListeners = ({ clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.ITEM_RENAMED, (msg) => onSSEItemRenamedEvent({ + topic: MESSAGE_TYPE.ITEM_RENAMED, resourcesStore, spacesStore, msg, @@ -682,6 +678,7 @@ export const registerSSEEventListeners = ({ clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.POSTPROCESSING_FINISHED, (msg) => onSSEProcessingFinishedEvent({ + topic: MESSAGE_TYPE.POSTPROCESSING_FINISHED, resourcesStore, spacesStore, msg, @@ -692,7 +689,8 @@ export const registerSSEEventListeners = ({ ) clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.FILE_LOCKED, (msg) => - onSSEFileLockedEvent({ + onSSEFileLockingEvent({ + topic: MESSAGE_TYPE.FILE_LOCKED, resourcesStore, spacesStore, msg, @@ -701,7 +699,8 @@ export const registerSSEEventListeners = ({ ) clientService.sseAuthenticated.addEventListener(MESSAGE_TYPE.FILE_UNLOCKED, (msg) => - onSSEFileUnlockedEvent({ + onSSEFileLockingEvent({ + topic: MESSAGE_TYPE.FILE_UNLOCKED, resourcesStore, spacesStore, msg, diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index 05f75459274..6b331b849a2 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -49,12 +49,14 @@ const itemInCurrentFolder = ({ } export const onSSEItemRenamedEvent = async ({ + topic, resourcesStore, spacesStore, msg, clientService, router }: { + topic: string resourcesStore: ResourcesStore spacesStore: SpacesStore msg: MessageEvent @@ -90,16 +92,18 @@ export const onSSEItemRenamedEvent = async ({ resourcesStore.upsertResource(updatedResource) } catch (e) { - console.error('Unable to parse sse event item-renamed data', e) + console.error(`Unable to parse sse event ${topic} data`, e) } } -export const onSSEFileLockedEvent = async ({ +export const onSSEFileLockingEvent = async ({ + topic, resourcesStore, spacesStore, msg, clientService }: { + topic: string resourcesStore: ResourcesStore spacesStore: SpacesStore msg: MessageEvent @@ -128,45 +132,7 @@ export const onSSEFileLockedEvent = async ({ }) }) } catch (e) { - console.error('Unable to parse sse event file-locked data', e) - } -} - -export const onSSEFileUnlockedEvent = async ({ - resourcesStore, - spacesStore, - msg, - clientService -}: { - resourcesStore: ResourcesStore - spacesStore: SpacesStore - msg: MessageEvent - clientService: ClientService -}) => { - try { - const sseData = fileReadyEventSchema.parse(JSON.parse(msg.data)) - const resource = resourcesStore.resources.find((f) => f.id === sseData.itemid) - const space = spacesStore.spaces.find((s) => s.id === resource.storageId) - - if (!resource || !space) { - return - } - - const updatedResource = await clientService.webdav.getFileInfo(space, { - fileId: sseData.itemid - }) - - resourcesStore.upsertResource(updatedResource) - resourcesStore.updateResourceField({ - id: updatedResource.id, - field: 'indicators', - value: getIndicators({ - resource: updatedResource, - ancestorMetaData: resourcesStore.ancestorMetaData - }) - }) - } catch (e) { - console.error('Unable to parse sse event file-unlocked data', e) + console.error(`Unable to parse sse event ${topic} data`, e) } } @@ -232,6 +198,6 @@ export const onSSEProcessingFinishedEvent = async ({ // }) } } catch (e) { - console.error('Unable to parse sse event postprocessing-finished data', e) + console.error(`Unable to parse sse event ${topic} data`, e) } } From 960e0a4845fb652522737407c5f5890834aa8f3e Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Mon, 11 Mar 2024 16:32:43 +0100 Subject: [PATCH 8/8] Add missing topic --- packages/web-runtime/src/container/sse.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/web-runtime/src/container/sse.ts b/packages/web-runtime/src/container/sse.ts index 6b331b849a2..808e9eee33d 100644 --- a/packages/web-runtime/src/container/sse.ts +++ b/packages/web-runtime/src/container/sse.ts @@ -137,6 +137,7 @@ export const onSSEFileLockingEvent = async ({ } export const onSSEProcessingFinishedEvent = async ({ + topic, resourcesStore, spacesStore, msg, @@ -146,6 +147,7 @@ export const onSSEProcessingFinishedEvent = async ({ resourceQueue, previewService }: { + topic: string resourcesStore: ResourcesStore spacesStore: SpacesStore msg: MessageEvent