feat: update GitHub Actions workflow for PDF engine and viewer

This commit is contained in:
alam00000
2026-10-19 13:17:07 +05:30
parent 231c012e99
commit 70dc47d25c
16 changed files with 840 additions and 88 deletions
+6 -3
View File
@@ -4,7 +4,10 @@ import { pdfSocket } from '../sockets';
import type { SocketData } from '../types';
import { requirePdfInput, processBatch } from '../types';
import { flattenAnnotations } from '../../utils/flatten-annotations.js';
import { loadPdfDocument } from '../../utils/load-pdf-document.js';
import {
loadPdfDocument,
removeUnreferencedObjects,
} from '../../utils/load-pdf-document.js';
export class FlattenNode extends BaseWorkflowNode {
readonly category = 'Secure PDF' as const;
@@ -39,11 +42,11 @@ export class FlattenNode extends BaseWorkflowNode {
console.error('Flatten annotations error:', err);
}
const pdfBytes = await pdfDoc.save();
const pdfBytes = await removeUnreferencedObjects(await pdfDoc.save());
return {
type: 'pdf',
document: pdfDoc,
bytes: new Uint8Array(pdfBytes),
bytes: pdfBytes,
filename: input.filename.replace(/\.pdf$/i, '_flattened.pdf'),
};
}),
+7 -1
View File
@@ -6,6 +6,7 @@ import { requirePdfInput, processBatch } from '../types';
import { loadPyMuPDF } from '../../utils/pymupdf-loader.js';
import { hexToRgb } from '../../utils/helpers.js';
import { loadPdfDocument } from '../../utils/load-pdf-document.js';
import { redactDocumentData } from '../../utils/redact-document-data.js';
import { wfError } from '../errors';
export class RedactNode extends BaseWorkflowNode {
@@ -106,9 +107,14 @@ export class RedactNode extends BaseWorkflowNode {
}
}
const resultBytes = new Uint8Array(doc.save());
const redactedBytes = new Uint8Array(doc.save());
doc.close();
const resultBytes = await redactDocumentData(
redactedBytes,
mode === 'text' ? searchText : undefined
);
const resultDoc = await loadPdfDocument(resultBytes);
return {
@@ -4,7 +4,10 @@ import { pdfSocket } from '../sockets';
import type { SocketData } from '../types';
import { requirePdfInput, processBatch } from '../types';
import { PDFName } from 'pdf-lib';
import { loadPdfDocument } from '../../utils/load-pdf-document.js';
import {
loadPdfDocument,
removeUnreferencedObjects,
} from '../../utils/load-pdf-document.js';
export class RemoveAnnotationsNode extends BaseWorkflowNode {
readonly category = 'Edit & Annotate' as const;
@@ -34,11 +37,11 @@ export class RemoveAnnotationsNode extends BaseWorkflowNode {
}
}
const pdfBytes = await pdfDoc.save();
const pdfBytes = await removeUnreferencedObjects(await pdfDoc.save());
return {
type: 'pdf',
document: pdfDoc,
bytes: new Uint8Array(pdfBytes),
bytes: pdfBytes,
filename: input.filename.replace(/\.pdf$/i, '_clean.pdf'),
};
}),