Bump version to 0.3.4
This commit is contained in:
@@ -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
|
||||||
|
|||||||
14
README.md
14
README.md
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Current hosted version: <https://pdftools.add-ideas.de>
|
Current hosted version: <https://pdftools.add-ideas.de>
|
||||||
|
|
||||||
Current release: **v0.3.1 — Split ZIP export release**. See [`CHANGELOG.md`](CHANGELOG.md) for release notes and milestone history.
|
Current release branch: **v0.3.4 — PDF.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.1 — Split ZIP export release
|
v0.3.4 — PDF.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
4
package-lock.json
generated
@@ -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",
|
||||||
|
|||||||
@@ -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": {
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
export const APP_VERSION = '0.3.2';
|
export const APP_VERSION = '0.3.4';
|
||||||
|
|||||||
Reference in New Issue
Block a user