feat: separate AGPL libraries and add dynamic WASM loading

- Add WASM settings page for configuring external AGPL modules
- Implement dynamic loading for PyMuPDF, Ghostscript, and CoherentPDF
- Add Cloudflare Worker proxy for serving WASM files with CORS
- Update all affected tool pages to check WASM availability
- Add showWasmRequiredDialog for missing module configuration

Documentation:
- Update README, licensing.html, and docs to clarify AGPL components
  are not bundled and must be configured separately
- Add WASM-PROXY.md deployment guide with recommended source URLs
- Rename "CPDF" to "CoherentPDF" for consistency
This commit is contained in:
alam00000
2026-01-27 15:26:11 +05:30
parent f6d432eaa7
commit 2c85ca74e9
75 changed files with 9696 additions and 6587 deletions

View File

@@ -1,33 +1,34 @@
declare const coherentpdf: typeof import('../../src/types/coherentpdf.global').coherentpdf;
interface MergeJob {
fileName: string;
rangeType: 'all' | 'specific' | 'single' | 'range';
rangeString?: string;
pageIndex?: number;
startPage?: number;
endPage?: number;
fileName: string;
rangeType: 'all' | 'specific' | 'single' | 'range';
rangeString?: string;
pageIndex?: number;
startPage?: number;
endPage?: number;
}
interface MergeFile {
name: string;
data: ArrayBuffer;
name: string;
data: ArrayBuffer;
}
interface MergeMessage {
command: 'merge';
files: MergeFile[];
jobs: MergeJob[];
command: 'merge';
files: MergeFile[];
jobs: MergeJob[];
cpdfUrl?: string;
}
interface MergeSuccessResponse {
status: 'success';
pdfBytes: ArrayBuffer;
status: 'success';
pdfBytes: ArrayBuffer;
}
interface MergeErrorResponse {
status: 'error';
message: string;
status: 'error';
message: string;
}
type MergeResponse = MergeSuccessResponse | MergeErrorResponse;