Skip to content

Commit 03e05ee

Browse files
committed
feat: retrieve pdfjs worker locally instead of cdn
1 parent 7deee4b commit 03e05ee

File tree

5 files changed

+69
-156
lines changed

5 files changed

+69
-156
lines changed

packages/pluggableWidgets/document-viewer-web/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [Unreleased]
88

9+
### Changed
10+
11+
- We moved the bundle of pdfjs worker to local build instead of using CDN for better CSP compliance.
12+
913
## [1.0.0] - 2025-05-05
1014

1115
### Added

packages/pluggableWidgets/document-viewer-web/components/PDFViewer.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ import { downloadFile } from "../utils/helpers";
66
import { useZoomScale } from "../utils/useZoomScale";
77
import BaseViewer from "./BaseViewer";
88
import { DocRendererElement, DocumentRendererProps, DocumentStatus } from "./documentRenderer";
9-
pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;
9+
10+
pdfjs.GlobalWorkerOptions.workerSrc = new URL(
11+
"/widgets/com/mendix/shared/pdfjs/pdf.worker.mjs",
12+
import.meta.url
13+
).toString();
14+
1015
const options = {
11-
cMapUrl: `https://unpkg.com/pdfjs-dist@${pdfjs.version}/cmaps/`,
12-
standardFontDataUrl: `https://unpkg.com/pdfjs-dist@${pdfjs.version}/standard_fonts`
16+
cMapUrl: "/widgets/com/mendix/shared/pdfjs/cmaps/",
17+
standardFontDataUrl: "/widgets/com/mendix/shared/pdfjs/standard_fonts"
1318
};
1419

1520
const PDFViewer: DocRendererElement = (props: DocumentRendererProps) => {

packages/pluggableWidgets/document-viewer-web/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@mendix/document-viewer-web",
33
"widgetName": "DocumentViewer",
4-
"version": "1.0.0",
4+
"version": "1.1.0",
55
"description": "View PDF and other document types",
66
"copyright": "© Mendix Technology BV 2025. All rights reserved.",
77
"license": "Apache-2.0",
@@ -38,8 +38,8 @@
3838
"@mendix/widget-plugin-component-kit": "workspace:*",
3939
"@mendix/widget-plugin-platform": "workspace:*",
4040
"classnames": "^2.5.1",
41-
"docx-preview": "^0.3.5",
42-
"pdfjs-dist": "^5.0.375",
41+
"docx-preview": "^0.3.6",
42+
"pdfjs-dist": "4.8.69",
4343
"react-pdf": "^9.2.1",
4444
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
4545
},

packages/pluggableWidgets/document-viewer-web/rollup.config.mjs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import commonjs from "@rollup/plugin-commonjs";
22
import replace from "@rollup/plugin-replace";
3+
import copy from "rollup-plugin-copy";
34
import { copyDefaultFilesPlugin } from "@mendix/rollup-web-widgets/copyFiles.mjs";
45

56
export default args => {
@@ -43,7 +44,26 @@ export default args => {
4344
"!PDFWorkerUtil.isWorkerDisabled && !PDFWorker.#mainThreadWorkerMessageHandler": "false"
4445
}
4546
}),
46-
copyDefaultFilesPlugin()
47+
copyDefaultFilesPlugin(),
48+
copy({
49+
targets: [
50+
{
51+
src: "node_modules/pdfjs-dist/cmaps",
52+
dest: "dist/tmp/widgets/com/mendix/shared/pdfjs/",
53+
flatten: false
54+
},
55+
{
56+
src: "node_modules/pdfjs-dist/standard_fonts",
57+
dest: "dist/tmp/widgets/com/mendix/shared/pdfjs/",
58+
flatten: false
59+
},
60+
{
61+
src: "node_modules/pdfjs-dist/build/pdf.worker.min.mjs",
62+
dest: "dist/tmp/widgets/com/mendix/shared/pdfjs/",
63+
rename: "pdf.worker.mjs"
64+
}
65+
]
66+
})
4767
]
4868
};
4969
});

0 commit comments

Comments
 (0)