fullbleed 0.3.0 → 0.3.1
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 +20 -5
- package/dist/THIRD_PARTY_NOTICES.txt +2 -2
- package/dist/browser/asset-manifest.json +10 -10
- package/dist/browser/client.js +2 -2
- package/dist/browser/worker.js +3 -3
- package/dist/build.json +14 -14
- package/dist/engine.wasm +0 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -6,10 +6,14 @@ it does not require Python, Rust, a browser, or system fonts. MIT licensed.
|
|
|
6
6
|
|
|
7
7
|
Import `fullbleed` for Node.js or `fullbleed/browser` for a web application.
|
|
8
8
|
|
|
9
|
-
This is an optional integration around the published **Fullbleed 2.5.
|
|
10
|
-
The package has its own version, **0.3.
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
This is an optional integration around the published **Fullbleed 2.5.10** engine.
|
|
10
|
+
The package has its own version, **0.3.1**. This patch fixes inline text overlap
|
|
11
|
+
and spacing in wrapped paragraphs, and keeps tracked labels at their intended
|
|
12
|
+
width. Affected PDFs can change line breaks,
|
|
13
|
+
pagination, and hashes; review saved baselines when upgrading.
|
|
14
|
+
The browser entry renders in a Web Worker, and the Node API supports worker and
|
|
15
|
+
process isolation. See the [browser guide](docs/browser.md),
|
|
16
|
+
[inline wrapping checks](docs/inline-wrapping.md),
|
|
13
17
|
[process isolation guide](docs/process-isolation.md),
|
|
14
18
|
[font-family checks](https://github.com/fullbleed-engine/fullbleed-node/blob/main/docs/font-families.md), and
|
|
15
19
|
[embedded-font checks](https://github.com/fullbleed-engine/fullbleed-node/blob/main/docs/font-subsets.md) for the retained fixtures.
|
|
@@ -22,7 +26,7 @@ Use Node.js 22 or newer. Install the [npm package](https://www.npmjs.com/package
|
|
|
22
26
|
npm install fullbleed
|
|
23
27
|
```
|
|
24
28
|
|
|
25
|
-
For a version-pinned installation, use `npm install --save-exact fullbleed@0.3.
|
|
29
|
+
For a version-pinned installation, use `npm install --save-exact fullbleed@0.3.1`.
|
|
26
30
|
Package archives and retained PDF/PNG evidence are attached to each
|
|
27
31
|
[GitHub release](https://github.com/fullbleed-engine/fullbleed-node/releases).
|
|
28
32
|
The [installation verification records](https://github.com/fullbleed-engine/fullbleed-node/tree/main/verification)
|
|
@@ -81,6 +85,13 @@ data; connect your own authenticated record lookup when adapting it.
|
|
|
81
85
|
|
|
82
86
|
## Use it in a browser
|
|
83
87
|
|
|
88
|
+
For React, use the [React and TypeScript starter](examples/react) with automatic
|
|
89
|
+
previews, editable templates, cancellation, and a reusable component-lifecycle hook.
|
|
90
|
+
|
|
91
|
+
Start with the [complete browser application](examples/browser): editable HTML/CSS,
|
|
92
|
+
invoice and report designs, previews, cancellation, and PDF downloads.
|
|
93
|
+
|
|
94
|
+
|
|
84
95
|
Copy the browser runtime into your application's static directory:
|
|
85
96
|
|
|
86
97
|
```sh
|
|
@@ -132,6 +143,10 @@ Use registered font families in CSS. The engine can substitute an unavailable
|
|
|
132
143
|
family. Its missing-glyph report checks resolved fonts and is not an exhaustive
|
|
133
144
|
font-substitution or visual-validation report.
|
|
134
145
|
|
|
146
|
+
Use bundled or explicitly registered fonts for PNG previews. PDFs using the
|
|
147
|
+
unembedded built-in Helvetica or Times faces rely on PDF-reader fonts; the
|
|
148
|
+
Fullbleed preview can omit their text. See the [retained inline checks](docs/inline-wrapping.md).
|
|
149
|
+
|
|
135
150
|
## API
|
|
136
151
|
|
|
137
152
|
This section describes the Node entry. The browser entry returns browser byte
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
fullbleed 2.5.
|
|
1
|
+
fullbleed 2.5.10 / 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.
|
|
26
|
+
fullbleed 2.5.10 / THIRD_PARTY_LICENSES.md
|
|
27
27
|
|
|
28
28
|
<!-- SPDX-License-Identifier: MIT -->
|
|
29
29
|
# Third-Party Licenses
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "fullbleed.browser-assets.v1",
|
|
3
|
-
"packageVersion": "0.3.
|
|
4
|
-
"engineVersion": "2.5.
|
|
3
|
+
"packageVersion": "0.3.1",
|
|
4
|
+
"engineVersion": "2.5.10",
|
|
5
5
|
"files": {
|
|
6
6
|
"client.js": {
|
|
7
7
|
"source": "dist/browser/client.js",
|
|
8
|
-
"bytes":
|
|
9
|
-
"sha256": "
|
|
8
|
+
"bytes": 12043,
|
|
9
|
+
"sha256": "60ea647aa3818c61a313f6a3c8ab8f269667fddc6ab85465d30c61408da0b765"
|
|
10
10
|
},
|
|
11
11
|
"worker.js": {
|
|
12
12
|
"source": "dist/browser/worker.js",
|
|
13
|
-
"bytes":
|
|
14
|
-
"sha256": "
|
|
13
|
+
"bytes": 52109,
|
|
14
|
+
"sha256": "32734ecd472fe4c329869ccf58078e8dbb0269621f5b37b8a72116daace65a99"
|
|
15
15
|
},
|
|
16
16
|
"engine.wasm": {
|
|
17
17
|
"source": "dist/engine.wasm",
|
|
18
|
-
"bytes":
|
|
19
|
-
"sha256": "
|
|
18
|
+
"bytes": 5075752,
|
|
19
|
+
"sha256": "4fcbecb954f6a5a64ea840795e74d719cc045d5ba35d5ffa730fcb46b3ce8b3c"
|
|
20
20
|
},
|
|
21
21
|
"THIRD_PARTY_NOTICES.txt": {
|
|
22
22
|
"source": "dist/THIRD_PARTY_NOTICES.txt",
|
|
23
|
-
"bytes":
|
|
24
|
-
"sha256": "
|
|
23
|
+
"bytes": 57662,
|
|
24
|
+
"sha256": "d41ecdf3735cc3eb030949311ba830a503f339ddb0108fb0b2e452186bab354f"
|
|
25
25
|
},
|
|
26
26
|
"LICENSE.txt": {
|
|
27
27
|
"source": "LICENSE",
|
package/dist/browser/client.js
CHANGED
|
@@ -109,8 +109,8 @@ var require_render_input = __commonJS({
|
|
|
109
109
|
init_define_FULLBLEED_FONT_NAMES();
|
|
110
110
|
init_define_FULLBLEED_RUNTIME_FILES();
|
|
111
111
|
var import_render_input = __toESM(require_render_input(), 1);
|
|
112
|
-
var version = "0.3.
|
|
113
|
-
var engineVersion = "2.5.
|
|
112
|
+
var version = "0.3.1";
|
|
113
|
+
var engineVersion = "2.5.10";
|
|
114
114
|
var FullbleedError = import_render_input.default.FullbleedError;
|
|
115
115
|
var invalid = (message) => {
|
|
116
116
|
throw new FullbleedError("INVALID_INPUT", message);
|
package/dist/browser/worker.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var define_FULLBLEED_FONT_NAMES_default = ["Inter-Variable.ttf", "DMSerifDisplay-Regular.ttf", "DMSerifDisplay-Italic.ttf", "BebasNeue-Regular.ttf"];
|
|
3
3
|
|
|
4
4
|
// <define:__FULLBLEED_RUNTIME_FILES__>
|
|
5
|
-
var define_FULLBLEED_RUNTIME_FILES_default = { "engine.wasm": { bytes:
|
|
5
|
+
var define_FULLBLEED_RUNTIME_FILES_default = { "engine.wasm": { bytes: 5075752, sha256: "4fcbecb954f6a5a64ea840795e74d719cc045d5ba35d5ffa730fcb46b3ce8b3c" }, "fonts/Inter-Variable.ttf": { bytes: 876576, sha256: "29160a80ff49ddcab2c97711247e08b1fab27a484a329ce8b813d820dc559031" }, "fonts/DMSerifDisplay-Regular.ttf": { bytes: 76580, sha256: "8cc3643535edf039aa5d95440a8542735e9197e4f4b8d9303e980fefbf5ab616" }, "fonts/DMSerifDisplay-Italic.ttf": { bytes: 71208, sha256: "df74c0ac387baeaeb0fe4f2324e1668e6a3ed8c09cd9796fe162c71753e19e45" }, "fonts/BebasNeue-Regular.ttf": { bytes: 61400, sha256: "08e4623805102d819f58601e46e345648846075e363b2ceb23313c2d1c83ec73" } };
|
|
6
6
|
|
|
7
7
|
// node_modules/@bjorn3/browser_wasi_shim/dist/wasi_defs.js
|
|
8
8
|
var CLOCKID_REALTIME = 0;
|
|
@@ -1438,8 +1438,8 @@ async function runEngine(job) {
|
|
|
1438
1438
|
}
|
|
1439
1439
|
|
|
1440
1440
|
// src/browser-worker.js
|
|
1441
|
-
var version = "0.3.
|
|
1442
|
-
var engineVersion = "2.5.
|
|
1441
|
+
var version = "0.3.1";
|
|
1442
|
+
var engineVersion = "2.5.10";
|
|
1443
1443
|
var files = define_FULLBLEED_RUNTIME_FILES_default;
|
|
1444
1444
|
var fontNames = define_FULLBLEED_FONT_NAMES_default;
|
|
1445
1445
|
var hex = (bytes) => Array.from(new Uint8Array(bytes), (value) => value.toString(16).padStart(2, "0")).join("");
|
package/dist/build.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageVersion": "0.3.
|
|
3
|
-
"engineVersion": "2.5.
|
|
4
|
-
"engineSource": "https://crates.io/crates/fullbleed/2.5.
|
|
2
|
+
"packageVersion": "0.3.1",
|
|
3
|
+
"engineVersion": "2.5.10",
|
|
4
|
+
"engineSource": "https://crates.io/crates/fullbleed/2.5.10",
|
|
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.
|
|
16
|
+
"version": "2.5.10",
|
|
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":
|
|
48
|
-
"sha256": "
|
|
47
|
+
"bytes": 5075752,
|
|
48
|
+
"sha256": "4fcbecb954f6a5a64ea840795e74d719cc045d5ba35d5ffa730fcb46b3ce8b3c"
|
|
49
49
|
},
|
|
50
50
|
"dist/THIRD_PARTY_NOTICES.txt": {
|
|
51
|
-
"bytes":
|
|
52
|
-
"sha256": "
|
|
51
|
+
"bytes": 57662,
|
|
52
|
+
"sha256": "d41ecdf3735cc3eb030949311ba830a503f339ddb0108fb0b2e452186bab354f"
|
|
53
53
|
},
|
|
54
54
|
"assets/fonts/BebasNeue-OFL.txt": {
|
|
55
55
|
"bytes": 4337,
|
|
@@ -80,16 +80,16 @@
|
|
|
80
80
|
"sha256": "29160a80ff49ddcab2c97711247e08b1fab27a484a329ce8b813d820dc559031"
|
|
81
81
|
},
|
|
82
82
|
"dist/browser/client.js": {
|
|
83
|
-
"bytes":
|
|
84
|
-
"sha256": "
|
|
83
|
+
"bytes": 12043,
|
|
84
|
+
"sha256": "60ea647aa3818c61a313f6a3c8ab8f269667fddc6ab85465d30c61408da0b765"
|
|
85
85
|
},
|
|
86
86
|
"dist/browser/worker.js": {
|
|
87
|
-
"bytes":
|
|
88
|
-
"sha256": "
|
|
87
|
+
"bytes": 52109,
|
|
88
|
+
"sha256": "32734ecd472fe4c329869ccf58078e8dbb0269621f5b37b8a72116daace65a99"
|
|
89
89
|
},
|
|
90
90
|
"dist/browser/asset-manifest.json": {
|
|
91
|
-
"bytes":
|
|
92
|
-
"sha256": "
|
|
91
|
+
"bytes": 2399,
|
|
92
|
+
"sha256": "d7f39b2163eb1a979eb393c9559e18494f63db1033c00f2c0e17700e4edf4521"
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
package/dist/engine.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fullbleed",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Generate PDFs from HTML and CSS in Node.js or a browser worker with the Fullbleed Rust engine, bundled fonts, and optional PNG previews.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.cjs",
|
|
@@ -45,7 +45,9 @@
|
|
|
45
45
|
"render:families": "node tools/render-font-families.mjs",
|
|
46
46
|
"verify:families": "python tools/verify-font-families.py output/font-families",
|
|
47
47
|
"build:browser": "node tools/build-browser.mjs",
|
|
48
|
-
"verify:browser:prepare": "node tools/prepare-browser-check.mjs"
|
|
48
|
+
"verify:browser:prepare": "node tools/prepare-browser-check.mjs",
|
|
49
|
+
"render:inline": "node tools/render-inline-wrapping.mjs",
|
|
50
|
+
"verify:inline": "python tools/verify-inline-wrapping.py"
|
|
49
51
|
},
|
|
50
52
|
"dependencies": {
|
|
51
53
|
"@bjorn3/browser_wasi_shim": "0.4.2"
|
|
@@ -73,7 +75,7 @@
|
|
|
73
75
|
"access": "public"
|
|
74
76
|
},
|
|
75
77
|
"fullbleed": {
|
|
76
|
-
"engineVersion": "2.5.
|
|
78
|
+
"engineVersion": "2.5.10"
|
|
77
79
|
},
|
|
78
80
|
"devDependencies": {
|
|
79
81
|
"@types/node": "22.20.5",
|