Bump version to 0.3.4

This commit is contained in:
2026-07-07 18:43:05 +02:00
parent 6386326473
commit 5f017d3b22
5 changed files with 22 additions and 9 deletions

View File

@@ -4,6 +4,15 @@ All notable changes to `pdf-tools` are documented here.
The project follows a pragmatic versioning scheme while the app is still below `1.0.0`: minor versions mark coherent user-facing milestones; patch versions mark fixes and small improvements. The project follows a pragmatic versioning scheme while the app is still below `1.0.0`: minor versions mark coherent user-facing milestones; patch versions mark fixes and small improvements.
## 0.3.4 — PDF.js browser compatibility fix
### Changed
- Centralized PDF.js setup in a shared module so thumbnail rendering and page preview use the same legacy PDF.js build and worker configuration.
- Added a local PDF.js worker wrapper that installs a `Uint8Array.prototype.toHex` compatibility shim before PDF.js worker code runs.
- Added the same `toHex` compatibility shim in the main app bundle for browsers that do not provide it natively.
- Bumped the app/package version to `0.3.4`.
## 0.3.2 — Multi-file merge queue release ## 0.3.2 — Multi-file merge queue release
### Added ### Added

View File

@@ -4,7 +4,7 @@
Current hosted version: <https://pdftools.add-ideas.de> Current hosted version: <https://pdftools.add-ideas.de>
Current release: **v0.3.1Split ZIP export release**. See [`CHANGELOG.md`](CHANGELOG.md) for release notes and milestone history. Current release branch: **v0.3.4PDF.js `toHex` browser compatibility fix**. See [`CHANGELOG.md`](CHANGELOG.md) for milestone history.
The app is a static React/Vite single-page application. There is no backend service, no server-side queue, and no server-side document storage. When hosted correctly, the server only delivers HTML, JavaScript, CSS, and static assets; PDF processing happens in the user's browser. The app is a static React/Vite single-page application. There is no backend service, no server-side queue, and no server-side document storage. When hosted correctly, the server only delivers HTML, JavaScript, CSS, and static assets; PDF processing happens in the user's browser.
@@ -40,6 +40,7 @@ This makes the project especially useful for self-hosted environments, public-se
- **Thumbnail cache by page and rotation**: Rotated thumbnails are cached and only changed thumbnails need to be regenerated. - **Thumbnail cache by page and rotation**: Rotated thumbnails are cached and only changed thumbnails need to be regenerated.
- **Stable page references**: Duplicated pages and reordered pages are tracked as workspace page references rather than only by original page number. - **Stable page references**: Duplicated pages and reordered pages are tracked as workspace page references rather than only by original page number.
- **Merge choices**: Loading another PDF can replace the current document, append pages, or insert pages at a chosen position. - **Merge choices**: Loading another PDF can replace the current document, append pages, or insert pages at a chosen position.
- **PDF.js compatibility setup**: PDF.js is configured through one shared module and a local worker wrapper so the app can polyfill `Uint8Array.prototype.toHex` before PDF.js runs in older browsers.
- **In-app help**: The app includes a Help/Tutorial dialog with keyboard shortcuts and workflow explanations. - **In-app help**: The app includes a Help/Tutorial dialog with keyboard shortcuts and workflow explanations.
## Current features ## Current features
@@ -219,7 +220,7 @@ The app expects modern browser APIs, including:
- Canvas; - Canvas;
- modern JavaScript modules. - modern JavaScript modules.
Use current versions of Chromium, Firefox, Safari, or Edge. The app includes a small `Uint8Array.prototype.toHex` compatibility shim for PDF.js fingerprint handling in browsers that do not provide that typed-array helper natively. Use current versions of Chromium, Firefox, Safari, or Edge where possible.
## Versioning and release baseline ## Versioning and release baseline
@@ -228,10 +229,10 @@ The application version shown in the header is defined in `src/version.ts`. The
The current development baseline is: The current development baseline is:
```text ```text
v0.3.1Split ZIP export release v0.3.4PDF.js toHex browser compatibility fix
``` ```
This release preserves the browser-only workspace baseline and adds split-result ZIP downloads on top of the selection-workspace feature. Workspace state, thumbnail handling, generated download URLs, page-grid components, tests, type-checking, linting, and formatting are separated enough to support additional feature work without turning `App.tsx` back into a monolith. This branch preserves the browser-only workspace baseline, includes the multi-file merge queue from the `0.3.2` milestone, bumps the displayed app/package version to `0.3.4`, and adds a shared PDF.js setup with a `toHex` compatibility shim for older browsers. Workspace state, thumbnail handling, generated download URLs, page-grid components, tests, type-checking, linting, and formatting are separated enough to support additional feature work without turning `App.tsx` back into a monolith.
## Project structure ## Project structure
@@ -248,6 +249,9 @@ src/
ReorderPanel.tsx Page grid, selection, drag/drop, copy/delete/rotate ReorderPanel.tsx Page grid, selection, drag/drop, copy/delete/rotate
WorkspacePanel.tsx Workspace save/load/reset and undo/redo history WorkspacePanel.tsx Workspace save/load/reset and undo/redo history
pdf/ pdf/
pdfJs.ts Shared pdf.js setup and worker configuration
pdfjsWorker.ts Local pdf.js worker wrapper with compatibility shim
uint8ArrayToHexPolyfill.ts Compatibility shim for PDF.js fingerprint handling
pdfService.ts pdf-lib operations: load, merge, split, export pdfService.ts pdf-lib operations: load, merge, split, export
pdfThumbnailService.ts pdf.js thumbnail rendering pdfThumbnailService.ts pdf.js thumbnail rendering
pdfZipService.ts Browser-side ZIP packaging for split results pdfZipService.ts Browser-side ZIP packaging for split results
@@ -291,7 +295,7 @@ src/
### Milestone 3: Better merge and mobile handling ### Milestone 3: Better merge and mobile handling
- [ ] Add a full multi-file merge queue. - [x] Add a full multi-file merge queue.
- [ ] Support drag-and-drop of PDFs into the page grid at the hovered position. - [ ] Support drag-and-drop of PDFs into the page grid at the hovered position.
- [ ] Add custom long-press drag on mobile. - [ ] Add custom long-press drag on mobile.
- [ ] Consolidate frequently used actions into a toolbar. - [ ] Consolidate frequently used actions into a toolbar.

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "pdf-tools", "name": "pdf-tools",
"version": "0.3.2", "version": "0.3.4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pdf-tools", "name": "pdf-tools",
"version": "0.3.2", "version": "0.3.4",
"dependencies": { "dependencies": {
"fflate": "^0.8.3", "fflate": "^0.8.3",
"pdf-lib": "^1.17.1", "pdf-lib": "^1.17.1",

View File

@@ -1,6 +1,6 @@
{ {
"name": "pdf-tools", "name": "pdf-tools",
"version": "0.3.2", "version": "0.3.4",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {

View File

@@ -1 +1 @@
export const APP_VERSION = '0.3.2'; export const APP_VERSION = '0.3.4';