refactor: move all TypeScript interfaces to centralized src/js/types folder
- Create type files with barrel export via @/types alias - Update logic files to use centralized type imports
This commit is contained in:
6
src/js/types/add-blank-page-type.ts
Normal file
6
src/js/types/add-blank-page-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface AddBlankPageState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
6
src/js/types/add-watermark-type.ts
Normal file
6
src/js/types/add-watermark-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface AddWatermarkState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
5
src/js/types/alternate-merge-page-type.ts
Normal file
5
src/js/types/alternate-merge-page-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface AlternateMergeState {
|
||||
files: File[];
|
||||
pdfBytes: Map<string, ArrayBuffer>;
|
||||
pdfDocs: Map<string, any>;
|
||||
}
|
||||
7
src/js/types/attachment-type.ts
Normal file
7
src/js/types/attachment-type.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface AddAttachmentState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
attachments: File[];
|
||||
}
|
||||
6
src/js/types/background-color-type.ts
Normal file
6
src/js/types/background-color-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface BackgroundColorState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
3
src/js/types/change-permissions-type.ts
Normal file
3
src/js/types/change-permissions-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface ChangePermissionsState {
|
||||
file: File | null;
|
||||
}
|
||||
6
src/js/types/combine-single-page-type.ts
Normal file
6
src/js/types/combine-single-page-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface CombineSinglePageState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
9
src/js/types/compare-pdfs-type.ts
Normal file
9
src/js/types/compare-pdfs-type.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import * as pdfjsLib from 'pdfjs-dist';
|
||||
|
||||
export interface CompareState {
|
||||
pdfDoc1: pdfjsLib.PDFDocumentProxy | null;
|
||||
pdfDoc2: pdfjsLib.PDFDocumentProxy | null;
|
||||
currentPage: number;
|
||||
viewMode: 'overlay' | 'side-by-side';
|
||||
isSyncScroll: boolean;
|
||||
}
|
||||
8
src/js/types/crop-pdf-type.ts
Normal file
8
src/js/types/crop-pdf-type.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export interface CropperState {
|
||||
pdfDoc: any;
|
||||
currentPageNum: number;
|
||||
cropper: any;
|
||||
originalPdfBytes: ArrayBuffer | null;
|
||||
pageCrops: Record<number, any>;
|
||||
file: File | null;
|
||||
}
|
||||
3
src/js/types/decrypt-pdf-type.ts
Normal file
3
src/js/types/decrypt-pdf-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface DecryptPdfState {
|
||||
file: File | null;
|
||||
}
|
||||
7
src/js/types/delete-pages-type.ts
Normal file
7
src/js/types/delete-pages-type.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export interface DeletePagesState {
|
||||
file: File | null;
|
||||
pdfDoc: any;
|
||||
pdfJsDoc: any;
|
||||
totalPages: number;
|
||||
pagesToDelete: Set<number>;
|
||||
}
|
||||
42
src/js/types/digital-sign-type.ts
Normal file
42
src/js/types/digital-sign-type.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { forge } from "zgapdfsigner";
|
||||
|
||||
export interface SignatureInfo {
|
||||
reason?: string;
|
||||
location?: string;
|
||||
contactInfo?: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface CertificateData {
|
||||
p12Buffer: ArrayBuffer;
|
||||
password: string;
|
||||
certificate: forge.pki.Certificate;
|
||||
}
|
||||
|
||||
export interface SignPdfOptions {
|
||||
signatureInfo?: SignatureInfo;
|
||||
visibleSignature?: VisibleSignatureOptions;
|
||||
}
|
||||
|
||||
export interface VisibleSignatureOptions {
|
||||
enabled: boolean;
|
||||
imageData?: ArrayBuffer;
|
||||
imageType?: 'png' | 'jpeg' | 'webp';
|
||||
x: number;
|
||||
y: number;
|
||||
width: number;
|
||||
height: number;
|
||||
page: number | string;
|
||||
text?: string;
|
||||
textColor?: string;
|
||||
textSize?: number;
|
||||
}
|
||||
|
||||
export interface DigitalSignState {
|
||||
pdfFile: File | null;
|
||||
pdfBytes: Uint8Array | null;
|
||||
certFile: File | null;
|
||||
certData: CertificateData | null;
|
||||
sigImageData: ArrayBuffer | null;
|
||||
sigImageType: 'png' | 'jpeg' | 'webp' | null;
|
||||
}
|
||||
7
src/js/types/divide-pages-type.ts
Normal file
7
src/js/types/divide-pages-type.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface DividePagesState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
totalPages: number;
|
||||
}
|
||||
12
src/js/types/edit-attachments-type.ts
Normal file
12
src/js/types/edit-attachments-type.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export interface AttachmentInfo {
|
||||
index: number;
|
||||
name: string;
|
||||
page: number;
|
||||
data: Uint8Array;
|
||||
}
|
||||
|
||||
export interface EditAttachmentState {
|
||||
file: File | null;
|
||||
allAttachments: AttachmentInfo[];
|
||||
attachmentsToRemove: Set<number>;
|
||||
}
|
||||
6
src/js/types/edit-metadata-type.ts
Normal file
6
src/js/types/edit-metadata-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface EditMetadataState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
3
src/js/types/encrypt-pdf-type.ts
Normal file
3
src/js/types/encrypt-pdf-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface EncryptPdfState {
|
||||
file: File | null;
|
||||
}
|
||||
3
src/js/types/extract-attachments-type.ts
Normal file
3
src/js/types/extract-attachments-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface ExtractAttachmentsState {
|
||||
files: File[];
|
||||
}
|
||||
7
src/js/types/extract-images-type.ts
Normal file
7
src/js/types/extract-images-type.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export interface ExtractedImage {
|
||||
data: Blob;
|
||||
width: number;
|
||||
height: number;
|
||||
pageNumber: number;
|
||||
imageIndex: number;
|
||||
}
|
||||
5
src/js/types/extract-pages-type.ts
Normal file
5
src/js/types/extract-pages-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface ExtractPagesState {
|
||||
file: File | null;
|
||||
pdfBytes: ArrayBuffer | null;
|
||||
totalPages: number;
|
||||
}
|
||||
3
src/js/types/fix-page-size-type.ts
Normal file
3
src/js/types/fix-page-size-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface FixPageSizeState {
|
||||
file: File | null;
|
||||
}
|
||||
3
src/js/types/flatten-pdf-type.ts
Normal file
3
src/js/types/flatten-pdf-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface FlattenPdfState {
|
||||
files: File[];
|
||||
}
|
||||
6
src/js/types/header-footer-type.ts
Normal file
6
src/js/types/header-footer-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface HeaderFooterState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
@@ -1,2 +1,48 @@
|
||||
export * from './ocr.js';
|
||||
export * from './form-creator.js';
|
||||
export * from './ocr-type.js';
|
||||
export * from './form-creator-type.js';
|
||||
export * from './digital-sign-type.js';
|
||||
export * from './attachment-type.js';
|
||||
export * from './edit-attachments-type.js';
|
||||
export * from './edit-metadata-type.js';
|
||||
export * from './divide-pages-type.js';
|
||||
export * from './alternate-merge-page-type.js';
|
||||
export * from './add-blank-page-type.js';
|
||||
export * from './compare-pdfs-type.js';
|
||||
export * from './fix-page-size-type.js';
|
||||
export * from './view-metadata-type.js';
|
||||
export * from './header-footer-type.js';
|
||||
export * from './encrypt-pdf-type.js';
|
||||
export * from './flatten-pdf-type.js';
|
||||
export * from './crop-pdf-type.js';
|
||||
export * from './background-color-type.js';
|
||||
export * from './posterize-type.js';
|
||||
export * from './decrypt-pdf-type.js';
|
||||
export * from './combine-single-page-type.js';
|
||||
export * from './change-permissions-type.js';
|
||||
export * from './validate-signature-type.js';
|
||||
export * from './remove-restrictions-type.js';
|
||||
export * from './page-dimensions-type.js';
|
||||
export * from './extract-attachments-type.js';
|
||||
export * from './pdf-multi-tool-type.js';
|
||||
export * from './ocr-pdf-type.js';
|
||||
export * from './delete-pages-type.js';
|
||||
export * from './invert-colors-type.js';
|
||||
export * from './table-of-contents-type.js';
|
||||
export * from './organize-pdf-type.js';
|
||||
export * from './merge-pdf-type.js';
|
||||
export * from './extract-images-type.js';
|
||||
export * from './extract-pages-type.js';
|
||||
export * from './pdf-layers-type.js';
|
||||
export * from './sanitize-pdf-type.js';
|
||||
export * from './reverse-pages-type.js';
|
||||
export * from './text-color-type.js';
|
||||
export * from './n-up-pdf-type.js';
|
||||
export * from './linearize-pdf-type.js';
|
||||
export * from './remove-metadata-type.js';
|
||||
export * from './rotate-pdf-type.js';
|
||||
export * from './pdf-booklet-type.js';
|
||||
export * from './page-numbers-type.js';
|
||||
export * from './pdf-to-zip-type.js';
|
||||
export * from './sign-pdf-type.js';
|
||||
export * from './add-watermark-type.js';
|
||||
|
||||
|
||||
6
src/js/types/invert-colors-type.ts
Normal file
6
src/js/types/invert-colors-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface InvertColorsState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
3
src/js/types/linearize-pdf-type.ts
Normal file
3
src/js/types/linearize-pdf-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface LinearizePdfState {
|
||||
files: File[];
|
||||
}
|
||||
5
src/js/types/merge-pdf-type.ts
Normal file
5
src/js/types/merge-pdf-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface MergeState {
|
||||
files: File[];
|
||||
pdfBytes: Map<string, ArrayBuffer>;
|
||||
pdfDocs: Map<string, any>;
|
||||
}
|
||||
5
src/js/types/n-up-pdf-type.ts
Normal file
5
src/js/types/n-up-pdf-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface NUpState {
|
||||
file: File | null;
|
||||
pdfBytes: ArrayBuffer | null;
|
||||
totalPages: number;
|
||||
}
|
||||
10
src/js/types/ocr-pdf-type.ts
Normal file
10
src/js/types/ocr-pdf-type.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export interface OcrWord {
|
||||
text: string;
|
||||
bbox: { x0: number; y0: number; x1: number; y1: number };
|
||||
confidence: number;
|
||||
}
|
||||
|
||||
export interface OcrState {
|
||||
file: File | null;
|
||||
searchablePdfBytes: Uint8Array | null;
|
||||
}
|
||||
6
src/js/types/organize-pdf-type.ts
Normal file
6
src/js/types/organize-pdf-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export interface OrganizeState {
|
||||
file: File | null;
|
||||
pdfBytes: ArrayBuffer | null;
|
||||
totalPages: number;
|
||||
pageOrder: number[];
|
||||
}
|
||||
6
src/js/types/page-dimensions-type.ts
Normal file
6
src/js/types/page-dimensions-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument } from 'pdf-lib';
|
||||
|
||||
export interface PageDimensionsState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFDocument | null;
|
||||
}
|
||||
3
src/js/types/page-numbers-type.ts
Normal file
3
src/js/types/page-numbers-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface PageNumbersState {
|
||||
file: File | null;
|
||||
}
|
||||
5
src/js/types/pdf-booklet-type.ts
Normal file
5
src/js/types/pdf-booklet-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface BookletState {
|
||||
file: File | null;
|
||||
pdfBytes: ArrayBuffer | null;
|
||||
totalPages: number;
|
||||
}
|
||||
5
src/js/types/pdf-layers-type.ts
Normal file
5
src/js/types/pdf-layers-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface LayerData {
|
||||
name: string;
|
||||
visible: boolean;
|
||||
locked: boolean;
|
||||
}
|
||||
10
src/js/types/pdf-multi-tool-type.ts
Normal file
10
src/js/types/pdf-multi-tool-type.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export interface MultiToolPageData {
|
||||
id: string;
|
||||
originalPdfId: string;
|
||||
pageIndex: number;
|
||||
thumbnail: string;
|
||||
width: number;
|
||||
height: number;
|
||||
rotation: number;
|
||||
isBlank?: boolean;
|
||||
}
|
||||
3
src/js/types/pdf-to-zip-type.ts
Normal file
3
src/js/types/pdf-to-zip-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface PdfToZipState {
|
||||
files: File[];
|
||||
}
|
||||
9
src/js/types/posterize-type.ts
Normal file
9
src/js/types/posterize-type.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import * as pdfjsLib from 'pdfjs-dist';
|
||||
|
||||
export interface PosterizeState {
|
||||
file: File | null;
|
||||
pdfJsDoc: pdfjsLib.PDFDocumentProxy | null;
|
||||
pdfBytes: Uint8Array | null;
|
||||
pageSnapshots: Record<number, ImageData>;
|
||||
currentPage: number;
|
||||
}
|
||||
3
src/js/types/remove-metadata-type.ts
Normal file
3
src/js/types/remove-metadata-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface RemoveMetadataState {
|
||||
file: File | null;
|
||||
}
|
||||
3
src/js/types/remove-restrictions-type.ts
Normal file
3
src/js/types/remove-restrictions-type.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface RemoveRestrictionsState {
|
||||
file: File | null;
|
||||
}
|
||||
5
src/js/types/reverse-pages-type.ts
Normal file
5
src/js/types/reverse-pages-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface ReverseState {
|
||||
file: File | null;
|
||||
pdfBytes: ArrayBuffer | null;
|
||||
totalPages: number;
|
||||
}
|
||||
6
src/js/types/rotate-pdf-type.ts
Normal file
6
src/js/types/rotate-pdf-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export interface RotateState {
|
||||
file: File | null;
|
||||
pdfBytes: ArrayBuffer | null;
|
||||
totalPages: number;
|
||||
pageRotations: Map<number, number>;
|
||||
}
|
||||
6
src/js/types/sanitize-pdf-type.ts
Normal file
6
src/js/types/sanitize-pdf-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument } from 'pdf-lib';
|
||||
|
||||
export interface SanitizePdfState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFDocument | null;
|
||||
}
|
||||
5
src/js/types/sign-pdf-type.ts
Normal file
5
src/js/types/sign-pdf-type.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface SignPdfState {
|
||||
file: File | null;
|
||||
pdfBytes: ArrayBuffer | null;
|
||||
signatureData: string | null;
|
||||
}
|
||||
18
src/js/types/table-of-contents-type.ts
Normal file
18
src/js/types/table-of-contents-type.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
export interface GenerateTOCMessage {
|
||||
type: 'generateTOC';
|
||||
pdfBytes: ArrayBuffer;
|
||||
title: string;
|
||||
headerColor: string;
|
||||
fontColor: string;
|
||||
fontSize: number;
|
||||
}
|
||||
|
||||
export interface TOCSuccessResponse {
|
||||
type: 'success';
|
||||
pdfBytes: ArrayBuffer;
|
||||
}
|
||||
|
||||
export interface TOCErrorResponse {
|
||||
type: 'error';
|
||||
message: string;
|
||||
}
|
||||
6
src/js/types/text-color-type.ts
Normal file
6
src/js/types/text-color-type.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { PDFDocument as PDFLibDocument } from 'pdf-lib';
|
||||
|
||||
export interface TextColorState {
|
||||
file: File | null;
|
||||
pdfDoc: PDFLibDocument | null;
|
||||
}
|
||||
47
src/js/types/validate-signature-type.ts
Normal file
47
src/js/types/validate-signature-type.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import forge from 'node-forge';
|
||||
|
||||
export interface SignatureValidationResult {
|
||||
signatureIndex: number;
|
||||
isValid: boolean;
|
||||
signerName: string;
|
||||
signerOrg?: string;
|
||||
signerEmail?: string;
|
||||
issuer: string;
|
||||
issuerOrg?: string;
|
||||
signatureDate?: Date;
|
||||
validFrom: Date;
|
||||
validTo: Date;
|
||||
isExpired: boolean;
|
||||
isSelfSigned: boolean;
|
||||
isTrusted: boolean;
|
||||
algorithms: {
|
||||
digest: string;
|
||||
signature: string;
|
||||
};
|
||||
serialNumber: string;
|
||||
reason?: string;
|
||||
location?: string;
|
||||
contactInfo?: string;
|
||||
byteRange?: number[];
|
||||
coverageStatus: 'full' | 'partial' | 'unknown';
|
||||
errorMessage?: string;
|
||||
}
|
||||
|
||||
export interface ExtractedSignature {
|
||||
index: number;
|
||||
contents: Uint8Array;
|
||||
byteRange: number[];
|
||||
reason?: string;
|
||||
location?: string;
|
||||
contactInfo?: string;
|
||||
name?: string;
|
||||
signingTime?: string;
|
||||
}
|
||||
|
||||
export interface ValidateSignatureState {
|
||||
pdfFile: File | null;
|
||||
pdfBytes: Uint8Array | null;
|
||||
results: SignatureValidationResult[];
|
||||
trustedCertFile: File | null;
|
||||
trustedCert: forge.pki.Certificate | null;
|
||||
}
|
||||
4
src/js/types/view-metadata-type.ts
Normal file
4
src/js/types/view-metadata-type.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export interface ViewMetadataState {
|
||||
file: File | null;
|
||||
metadata: Record<string, unknown>;
|
||||
}
|
||||
Reference in New Issue
Block a user