diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts index 19d4a1313b..db14d63645 100644 --- a/apps/desktop/src/main.ts +++ b/apps/desktop/src/main.ts @@ -152,6 +152,7 @@ async function main() { getDemoArchive: async () => fs.readFileSync(path.join(RESOURCE_DIR, "db", "demo.zip")), inAppHelp: new NodejsInAppHelpProvider(), backup: new ServerBackupService(), + image: (await import("@triliumnext/server/src/services/image_provider.js")).serverImageProvider, extraAppInfo: { nodeVersion: process.version, dataDirectory: path.resolve(dataDirs.TRILIUM_DATA_DIR) diff --git a/apps/server/src/routes/routes.ts b/apps/server/src/routes/routes.ts index b344f5958e..de2247677d 100644 --- a/apps/server/src/routes/routes.ts +++ b/apps/server/src/routes/routes.ts @@ -106,8 +106,6 @@ function register(app: express.Application) { apiRoute(PST, "/api/notes/:noteId/save-to-tmp-dir", filesRoute.saveNoteToTmpDir); apiRoute(PST, "/api/notes/:noteId/upload-modified-file", filesRoute.uploadModifiedFileToNote); - // TODO: Bring back attachment uploading - // route(PST, "/api/notes/:noteId/attachments/upload", [auth.checkApiAuthOrElectron, uploadMiddlewareWithErrorHandling, csrfMiddleware], attachmentsApiRoute.uploadAttachment, apiResultHandler); asyncRoute( GET, "/api/attachments/:attachmentId/open-partial", @@ -123,9 +121,6 @@ function register(app: express.Application) { apiRoute(PST, "/api/attachments/:attachmentId/upload-modified-file", filesRoute.uploadModifiedFileToAttachment); route(PUT, "/api/attachments/:attachmentId/file", [auth.checkApiAuthOrElectron, uploadMiddlewareWithErrorHandling, csrfMiddleware], filesRoute.updateAttachment, apiResultHandler); - // TODO: Re-enable once ported to core. - // route(PUT, "/api/images/:noteId", [auth.checkApiAuthOrElectron, uploadMiddlewareWithErrorHandling, csrfMiddleware], imageRoute.updateImage, apiResultHandler); - // TODO: Re-enable once we support route() // route(GET, "/api/revisions/:revisionId/download", [auth.checkApiAuthOrElectron], revisionsApiRoute.downloadRevision); diff --git a/apps/server/src/services/image_provider.ts b/apps/server/src/services/image_provider.ts index 58bb1bc1bd..3caf5fb4f1 100644 --- a/apps/server/src/services/image_provider.ts +++ b/apps/server/src/services/image_provider.ts @@ -55,7 +55,7 @@ async function resize(buffer: Uint8Array, quality: number): Promise const start = Date.now(); - const image = await Jimp.read(buffer); + const image = await Jimp.read(Buffer.from(buffer)); if (image.bitmap.width > image.bitmap.height && image.bitmap.width > imageMaxWidthHeight) { image.resize({ w: imageMaxWidthHeight }); diff --git a/packages/trilium-core/src/routes/index.ts b/packages/trilium-core/src/routes/index.ts index ef34d25ec1..bca7658dd5 100644 --- a/packages/trilium-core/src/routes/index.ts +++ b/packages/trilium-core/src/routes/index.ts @@ -123,6 +123,8 @@ export function buildSharedApiRoutes({ route, asyncRoute, apiRoute, asyncApiRout route(GET, "/api/revisions/:revisionId/image/:filename", [checkApiAuthOrElectron], imageRoute.returnImageFromRevision); route(GET, "/api/attachments/:attachmentId/image/:filename", [checkApiAuthOrElectron], imageRoute.returnAttachedImage); route(GET, "/api/images/:noteId/:filename", [checkApiAuthOrElectron], imageRoute.returnImageFromNote); + route(PUT, "/api/images/:noteId", [checkApiAuthOrElectron, uploadMiddlewareWithErrorHandling, csrfMiddleware], imageRoute.updateImage, apiResultHandler); + route(PST, "/api/notes/:noteId/attachments/upload", [checkApiAuthOrElectron, uploadMiddlewareWithErrorHandling, csrfMiddleware], attachmentsApiRoute.uploadAttachment, apiResultHandler); // group of the services below are meant to be executed from the outside route(GET, "/api/setup/status", [], setupApiRoute.getStatus, apiResultHandler);