fullbleed 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,10 +4,12 @@ Generate PDFs from static HTML and CSS in Node.js. The package includes the
4
4
  Fullbleed Rust engine compiled to WebAssembly and four font faces, so installing
5
5
  it does not require Python, Rust, a browser, or system fonts. MIT licensed.
6
6
 
7
- This is an optional integration around the unchanged **Fullbleed 2.5.6** engine.
8
- The Node package has its own version, **0.1.3**. Render promises now wait for their
9
- worker to exit, including after errors, timeouts, and cancellation, so sequential
10
- calls do not overlap worker lifetimes.
7
+ This is an optional integration around the published **Fullbleed 2.5.8** engine.
8
+ The Node package has its own version, **0.1.5**. Normal text now selects a custom
9
+ family's regular face even when its italic face is supplied first. Review saved
10
+ PDF baselines when upgrading: affected documents can change appearance and line
11
+ breaks. See the [font-family checks](https://github.com/fullbleed-engine/fullbleed-node/blob/main/docs/font-families.md) and
12
+ [embedded-font checks](https://github.com/fullbleed-engine/fullbleed-node/blob/main/docs/font-subsets.md) for the retained fixtures.
11
13
 
12
14
  ## Install and render
13
15
 
@@ -17,9 +19,9 @@ Use Node.js 22 or newer. Install the [npm package](https://www.npmjs.com/package
17
19
  npm install fullbleed
18
20
  ```
19
21
 
20
- For a version-pinned installation, use `npm install --save-exact fullbleed@0.1.3`.
21
- The npm tarball is byte-identical to the verified
22
- [GitHub release](https://github.com/fullbleed-engine/fullbleed-node/releases/tag/v0.1.3).
22
+ For a version-pinned installation, use `npm install --save-exact fullbleed@0.1.5`.
23
+ Release verification compares the npm tarball with the checked
24
+ [GitHub release](https://github.com/fullbleed-engine/fullbleed-node/releases/tag/v0.1.5).
23
25
  See the [installation verification records](https://github.com/fullbleed-engine/fullbleed-node/tree/main/verification).
24
26
 
25
27
  Save this as `invoice.mjs` and run `node invoice.mjs`:
@@ -164,8 +166,8 @@ arbitrary browser pages.
164
166
  ## Build and verify from source
165
167
 
166
168
  Contributors need Node.js 22+ and Rust 1.97.0 with the WASI target. The independent
167
- PDF text check also uses Python with the test-only `pypdf==6.19.0` reader. Package
168
- users do not need a compiler or Python. Dependencies are pinned in both lockfiles.
169
+ PDF checks also use Python with the test-only readers listed below. Package users
170
+ do not need a compiler or Python. Dependencies are pinned in both lockfiles.
169
171
 
170
172
  ```bash
171
173
  rustup target add wasm32-wasip1
@@ -175,8 +177,12 @@ npm test
175
177
  npm run check:types
176
178
  npm run verify:native
177
179
  npm run verify:pack
178
- python -m pip install pypdf==6.19.0
180
+ python -m pip install pypdf==6.19.0 pypdfium2==5.14.0 fonttools==4.65.0 pillow==12.3.0
179
181
  npm run verify:text
182
+ npm run render:fonts
183
+ npm run verify:fonts
184
+ npm run render:families
185
+ npm run verify:families
180
186
  ```
181
187
 
182
188
  The build records engine metadata, licenses, and artifact hashes in `dist/`.
@@ -185,6 +191,16 @@ fonts, and image assets; compares native and WebAssembly PDF/PNG bytes; checks
185
191
  error recovery; and installs the packed tarball into a separate directory with
186
192
  spaces in its path. CI exercises Node 22, 24, and 26 on Windows, Linux, and macOS.
187
193
  Retained release evidence describes the verified fixtures and scope.
194
+ The font check reads PDFs from the isolated tarball installation, checks the
195
+ embedded TrueType programs against their source fonts, and compares two
196
+ independent text readers. CI also compares text and native/PDFium pixels with
197
+ the previous public npm release.
198
+
199
+ An intermittent process crash observed on Linux with Node 24.21.0 remains under
200
+ investigation in [issue #7](https://github.com/fullbleed-engine/fullbleed-node/issues/7).
201
+ Version 0.1.3 fixes worker shutdown timing, but does not establish that this crash
202
+ is resolved. See the [runtime investigation and diagnostic](docs/runtime-diagnostics.md)
203
+ for the observed scope, retained results, and a synthetic reproducer.
188
204
 
189
205
  ## License and support
190
206
 
@@ -1,4 +1,4 @@
1
- fullbleed 2.5.6 / LICENSE
1
+ fullbleed 2.5.8 / LICENSE
2
2
 
3
3
  MIT License
4
4
 
@@ -23,7 +23,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
23
  SOFTWARE.
24
24
 
25
25
 
26
- fullbleed 2.5.6 / THIRD_PARTY_LICENSES.md
26
+ fullbleed 2.5.8 / THIRD_PARTY_LICENSES.md
27
27
 
28
28
  <!-- SPDX-License-Identifier: MIT -->
29
29
  # Third-Party Licenses
package/dist/build.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "packageVersion": "0.1.3",
3
- "engineVersion": "2.5.6",
4
- "engineSource": "https://crates.io/crates/fullbleed/2.5.6",
2
+ "packageVersion": "0.1.5",
3
+ "engineVersion": "2.5.8",
4
+ "engineSource": "https://crates.io/crates/fullbleed/2.5.8",
5
5
  "target": "wasm32-wasip1",
6
6
  "memoryMaximumBytes": 536870912,
7
7
  "fonts": [
@@ -13,7 +13,7 @@
13
13
  "dependencies": [
14
14
  {
15
15
  "name": "fullbleed",
16
- "version": "2.5.6",
16
+ "version": "2.5.8",
17
17
  "source": "registry+https://github.com/rust-lang/crates.io-index",
18
18
  "license": "MIT"
19
19
  },
@@ -44,12 +44,12 @@
44
44
  ],
45
45
  "files": {
46
46
  "dist/engine.wasm": {
47
- "bytes": 5053312,
48
- "sha256": "20bc142538c5acf826b162531ed57541d410b033e3666a827934b89ef2fc84cb"
47
+ "bytes": 5069661,
48
+ "sha256": "e95cc9132029b9c42ad684d898063b4efc043fa0b7b9fe2e7867f3eb3a17ef58"
49
49
  },
50
50
  "dist/THIRD_PARTY_NOTICES.txt": {
51
51
  "bytes": 57660,
52
- "sha256": "4a945a683c5f4be6a4c74b59f45aa1f5e6627022a80addddb6eaf68ed3916d9f"
52
+ "sha256": "5475f50666d3af5df89048cc1ddc98d153cd813019afbc213be20e4f3838911f"
53
53
  },
54
54
  "assets/fonts/BebasNeue-OFL.txt": {
55
55
  "bytes": 4337,
package/dist/engine.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fullbleed",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Generate PDFs from HTML and CSS in Node.js with the Fullbleed Rust engine, bundled fonts, and optional PNG previews.",
5
5
  "type": "module",
6
6
  "main": "./src/index.cjs",
@@ -35,7 +35,11 @@
35
35
  "verify:native": "node tools/verify-native.mjs",
36
36
  "example": "node examples/invoice.mjs",
37
37
  "verify:pack": "node tools/verify-pack.mjs",
38
- "verify:text": "python tools/verify-installed-text.py"
38
+ "verify:text": "python tools/verify-installed-text.py",
39
+ "render:fonts": "node tools/render-font-subsets.mjs",
40
+ "verify:fonts": "python tools/verify-font-subsets.py",
41
+ "render:families": "node tools/render-font-families.mjs",
42
+ "verify:families": "python tools/verify-font-families.py output/font-families"
39
43
  },
40
44
  "dependencies": {
41
45
  "@bjorn3/browser_wasi_shim": "0.4.2"
@@ -63,7 +67,7 @@
63
67
  "access": "public"
64
68
  },
65
69
  "fullbleed": {
66
- "engineVersion": "2.5.6"
70
+ "engineVersion": "2.5.8"
67
71
  },
68
72
  "devDependencies": {
69
73
  "@types/node": "22.20.5",