From cd7ac6f2fcbc7fe93cdab0cf8df9d48f75c994f6 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Fri, 14 Aug 2026 14:25:02 +0200 Subject: [PATCH] [editor-core] gracefully handle verbose project_output_file details (#36552) GitOrigin-RevId: 2c549db61dc05c02729bf80c8fbd3f31d52f1e9c --- libraries/overleaf-editor-core/lib/schemas.js | 3 ++- .../overleaf-editor-core/test/unit/schemas.test.js | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libraries/overleaf-editor-core/lib/schemas.js b/libraries/overleaf-editor-core/lib/schemas.js index c0d3b0c81b..a400222737 100644 --- a/libraries/overleaf-editor-core/lib/schemas.js +++ b/libraries/overleaf-editor-core/lib/schemas.js @@ -113,7 +113,8 @@ const rawLinkedFileData = z.discriminatedUnion('provider', [ v1_source_doc_id: z.number().optional(), source_output_file_path: z.string(), build_id: zz.buildId().optional(), - clsiServerId: z.string().optional(), + compileGroup: zz.compileGroup().optional(), + clsiServerId: zz.clsiServerId().optional(), importedAt: z.iso.datetime().optional(), }), z.strictObject({ diff --git a/libraries/overleaf-editor-core/test/unit/schemas.test.js b/libraries/overleaf-editor-core/test/unit/schemas.test.js index 45d58121fe..c2103c8c76 100644 --- a/libraries/overleaf-editor-core/test/unit/schemas.test.js +++ b/libraries/overleaf-editor-core/test/unit/schemas.test.js @@ -156,6 +156,19 @@ describe('schemas', function () { expect(result.success).to.equal(true) }) + it('accepts a project_output_file provider with verbose details', function () { + const result = rawLinkedFileData.safeParse({ + provider: 'project_output_file', + source_project_id: '507f1f77bcf86cd799439011', + source_output_file_path: 'output.pdf', + compileGroup: 'standard', + clsiServerId: 'clsi-pre-emp-e2-f-tqnd', + build_id: '1234-abcd', + importedAt: '2026-08-14T00:00:00.000Z', + }) + expect(result.success).to.equal(true) + }) + it('rejects a project_output_file provider with a malformed build_id', function () { const result = rawLinkedFileData.safeParse({ provider: 'project_output_file',