@danielsimonjr/sciengjs 0.9.0 → 1.0.0
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 +3 -2
- package/THIRD_PARTY_NOTICES.md +65 -4
- package/dist/browser/render.d.ts +13 -0
- package/dist/browser/render.js +10 -6
- package/dist/browser/render.js.map +1 -1
- package/dist/core.js +20 -12
- package/dist/core.js.map +1 -1
- package/dist/registry.d.ts +6 -0
- package/dist/registry.js +20 -0
- package/dist/registry.js.map +1 -1
- package/dist/tex/backend-pdf.d.ts +3 -0
- package/dist/tex/backend-pdf.js +10 -0
- package/dist/tex/backend-pdf.js.map +1 -0
- package/dist/tex/backend-png.d.ts +6 -0
- package/dist/tex/backend-png.js +19 -0
- package/dist/tex/backend-png.js.map +1 -0
- package/dist/tex/backend-svg.d.ts +3 -0
- package/dist/tex/backend-svg.js +8 -0
- package/dist/tex/backend-svg.js.map +1 -0
- package/dist/tex/bundles.d.ts +49 -0
- package/dist/tex/bundles.js +170 -0
- package/dist/tex/bundles.js.map +1 -0
- package/dist/tex/bundles.json +26 -0
- package/dist/tex/detect.d.ts +27 -0
- package/dist/tex/detect.js +212 -0
- package/dist/tex/detect.js.map +1 -0
- package/dist/tex/dvi.d.ts +44 -0
- package/dist/tex/dvi.js +280 -0
- package/dist/tex/dvi.js.map +1 -0
- package/dist/tex/host.d.ts +82 -0
- package/dist/tex/host.js +313 -0
- package/dist/tex/host.js.map +1 -0
- package/dist/tex/index.d.ts +16 -0
- package/dist/tex/index.js +17 -0
- package/dist/tex/index.js.map +1 -0
- package/dist/tex/render.d.ts +66 -0
- package/dist/tex/render.js +72 -0
- package/dist/tex/render.js.map +1 -0
- package/dist/tex/run.d.ts +51 -0
- package/dist/tex/run.js +54 -0
- package/dist/tex/run.js.map +1 -0
- package/dist/tex/specials.d.ts +32 -0
- package/dist/tex/specials.js +145 -0
- package/dist/tex/specials.js.map +1 -0
- package/dist/tex/stage.d.ts +34 -0
- package/dist/tex/stage.js +102 -0
- package/dist/tex/stage.js.map +1 -0
- package/dist/tex/tfm.d.ts +15 -0
- package/dist/tex/tfm.js +33 -0
- package/dist/tex/tfm.js.map +1 -0
- package/dist/tex/type1.d.ts +32 -0
- package/dist/tex/type1.js +402 -0
- package/dist/tex/type1.js.map +1 -0
- package/dist/tex/vfs.d.ts +37 -0
- package/dist/tex/vfs.js +80 -0
- package/dist/tex/vfs.js.map +1 -0
- package/dist/tex/wasm.d.ts +16 -0
- package/dist/tex/wasm.js +8 -0
- package/dist/tex/wasm.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worker/protocol.d.ts +6 -0
- package/package.json +110 -106
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ sciengjs turns diagram source into images on your own machine. It sends no sourc
|
|
|
10
10
|
|
|
11
11
|
## What this release does
|
|
12
12
|
|
|
13
|
-
Release 0.9.0 holds ten input types. They are **Graphviz DOT**, **Mermaid** (every diagram type) and **LaTeX math** (to SVG, PNG and PDF). They also include **Plotly plots** (to SVG, PNG and HTML) and **HTML** (to PNG, PDF and Markdown). The CAD files **STEP**, **IGES** and **BREP** go to GLB, to a viewer page in HTML, and to PNG. A **CAD document** (a CSG model in JSON) goes to GLB, STL, HTML and PNG. A **SysML v2** source in a textual subset goes to SVG, PNG and PDF. The browser stage draws the Mermaid types other than class, state and sequence, and every PDF.
|
|
13
|
+
Release 0.9.0 holds ten input types. They are **Graphviz DOT**, **Mermaid** (every diagram type) and **LaTeX math** (to SVG, PNG and PDF). They also include **Plotly plots** (to SVG, PNG and HTML) and **HTML** (to PNG, PDF and Markdown). The CAD files **STEP**, **IGES** and **BREP** go to GLB, to a viewer page in HTML, and to PNG. A **CAD document** (a CSG model in JSON) goes to GLB, STL, HTML and PNG. A **SysML v2** source in a textual subset goes to SVG, PNG and PDF. A **TikZ** picture goes to SVG, PNG and PDF through the tex stage. The `tikz` input type includes circuitikz, tikz-cd and chemfig. The first render downloads the TeX bundles. The browser stage draws the Mermaid types other than class, state and sequence, and every PDF.
|
|
14
14
|
|
|
15
15
|
| Input | Output | Engine |
|
|
16
16
|
|---|---|---|
|
|
@@ -24,6 +24,7 @@ Release 0.9.0 holds ten input types. They are **Graphviz DOT**, **Mermaid** (eve
|
|
|
24
24
|
| STEP, IGES, BREP | GLB, HTML, PNG | OpenCascade, compiled to WASM (`occt-import-js`); a Three.js viewer page |
|
|
25
25
|
| CAD document | GLB, STL, HTML, PNG | The engine's own reader; the solid operations through `manifold-3d` (WASM) |
|
|
26
26
|
| SysML v2 (a textual subset) | SVG, PNG, PDF | The engine's own parser and views, then Graphviz; PDF through the browser stage |
|
|
27
|
+
| TikZ picture, circuitikz, tikz-cd, chemfig, mhchem, bussproofs, AMS math | SVG, PNG, PDF | An own WASM build of `tex.web` with `etex.ch`; the bundles download on first use (`SCIENG_TEX_BUNDLE_URL`, `SCIENG_CACHE_DIR`) and each has a pinned sha256; PNG through resvg; PDF through the browser stage |
|
|
27
28
|
|
|
28
29
|
- **No network.** The DOT and Mermaid paths make no network request. The browser stage starts Chrome or Chromium from `SCIENG_BROWSER` with a new profile. Its flags stop every connection out of the host. The client refuses every request except the page and the pinned Mermaid build. CI checks the browser process tree on Linux, macOS and Windows.
|
|
29
30
|
- **Unsafe attributes are removed.** The engine removes each `image` and `stylesheet` attribute before the layout and gives a warning for each one. A DOT file cannot make the engine or a browser fetch a file or a URL. A `URL` attribute stays as a link in the SVG.
|
|
@@ -336,7 +337,7 @@ The [build plan](docs/superpowers/plans/2026-11-01-scieng-engine-build.md) gives
|
|
|
336
337
|
| DOT | graph, raster | released in 0.1.0 |
|
|
337
338
|
| Mermaid | graph, mermaid, browser | class, state and sequence: released in 0.2.0; other types: released in 0.3.0 |
|
|
338
339
|
| LaTeX math | math (MathJax) | svg, png and pdf are built; pdf needs the browser stage |
|
|
339
|
-
| TikZ, circuitikz, LaTeX | tex (an own WASM build of `tex.web`) |
|
|
340
|
+
| TikZ, circuitikz, LaTeX | tex (an own WASM build of `tex.web`) | tikz svg, png and pdf are built (unreleased); the bundles come from `texBundleUrl` |
|
|
340
341
|
| Plots | plot | svg, png and html: released in 0.5.0; pdf is not planned |
|
|
341
342
|
| SysML v2 | sysml, graph | svg, png and pdf: released in 0.9.0 |
|
|
342
343
|
| STEP, IGES, BREP | mesh (OpenCascade WASM) | glb, html and png: released in 0.7.0 |
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -12,8 +12,8 @@ Version: each row gives the version that the engine pins.
|
|
|
12
12
|
|---|---|---|---|
|
|
13
13
|
| graph | `@viz-js/viz` 3.31.0 (Graphviz 16.1.0 compiled to WASM) | Wrapper: MIT. Graphviz: EPL-2.0 | a dependency |
|
|
14
14
|
| math | `@mathjax/src` 4.1.3 (MathJax, with the Newcm math font and the packages it installs; see "MathJax") | Apache-2.0 for MathJax and the math font; the other packages are listed under "MathJax" | a dependency |
|
|
15
|
-
| tex | The own WASM build of `tex.web` with `etex.ch` (trials T5 and T6) | The "tex" stage of the design gives the licence of each input |
|
|
16
|
-
| tex | TeX packages (bundles) | LPPL
|
|
15
|
+
| tex | The own WASM build of `tex.web` with `etex.ch` (trials T5 and T6) | The "tex" stage of the design gives the licence of each input | downloaded in the core bundle |
|
|
16
|
+
| tex | TeX packages (bundles) | LPPL, public domain, OFL or GFL. Each package keeps its own licence (see "TeX toolchain and packages") | downloaded in the bundles |
|
|
17
17
|
| mesh | `occt-import-js` 0.0.23 (OpenCascade compiled to WASM) | LGPL-2.1 | a dependency |
|
|
18
18
|
| mesh | `manifold-3d` 3.2.1 (Manifold compiled to WASM) | Apache-2.0 | a dependency |
|
|
19
19
|
| mesh | `manifold-3d` | Apache-2.0 | not yet a dependency |
|
|
@@ -99,11 +99,72 @@ The font `assets/fonts/LiberationSerif-Regular.ttf` is Liberation Serif Regular,
|
|
|
99
99
|
|
|
100
100
|
### TeX toolchain and packages
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
The tex stage downloads its bundles on first use. The engine package holds no TeX package file and no font file. The engine package holds the pinned sha256 of each bundle in `src/tex/bundles.json`. There are four bundle files: `scieng-tex-core.sctb`, `scieng-tex-diagrams.sctb`, `scieng-tex-science.sctb` and `scieng-tex-math.sctb`. They hold unmodified files of the TeX Live 2023 archives in the table. The archives come from `tlnet-final`. Each has a sha256 pin in `tools/tex/config.json`. The core bundle also holds the WASM build of `tex.web` with `etex.ch` and the format `scieng.fmt`.
|
|
103
|
+
|
|
104
|
+
The column Licence gives the `catalogue-license` field of `texlive.tlpdb` of TeX Live 2023, as written there. The values have these meanings. `lppl`, `lppl1.3` and `lppl1.3c` are the LaTeX Project Public License. `ofl` is the SIL Open Font License. `pd` is public domain. `knuth` is the licence of the Computer Modern TFM files and the Knuth library files. The package `pgf` lists the LPPL, the GPL 2 and the FDL. The engine uses the LPPL. The package `circuitikz` lists the LPPL and the GPL; the engine uses the LPPL. The Type 1 outlines of Computer Modern and of the AMS fonts come from `amsfonts` (OFL). Latin Modern (`lm`, GFL) is not in a bundle. No sample glyph needed Latin Modern. No package with the GPL as its only licence is in a bundle.
|
|
105
|
+
|
|
106
|
+
| Package | Archive | Licence | Used in |
|
|
107
|
+
|---|---|---|---|
|
|
108
|
+
| amscls | `amscls.tar.xz` | lppl1.3c | extra bundles |
|
|
109
|
+
| amsfonts | `amsfonts.tar.xz` | ofl | format and core bundle, and the extra bundles |
|
|
110
|
+
| amsmath | `amsmath.tar.xz` | lppl1.3c | extra bundles |
|
|
111
|
+
| babel | `babel.tar.xz` | lppl1.3 | format and core bundle |
|
|
112
|
+
| bussproofs | `bussproofs.tar.xz` | lppl1.3 | extra bundles |
|
|
113
|
+
| chemfig | `chemfig.tar.xz` | lppl1.3c | extra bundles |
|
|
114
|
+
| chemgreek | `chemgreek.tar.xz` | lppl1.3 | extra bundles |
|
|
115
|
+
| circuitikz | `circuitikz.tar.xz` | lppl gpl | format and core bundle |
|
|
116
|
+
| cm | `cm.tar.xz` | knuth | format and core bundle |
|
|
117
|
+
| etoolbox | `etoolbox.tar.xz` | lppl1.3c | extra bundles |
|
|
118
|
+
| firstaid | `firstaid.tar.xz` | lppl1.3c | format and core bundle |
|
|
119
|
+
| graphics | `graphics.tar.xz` | lppl1.3c | format and core bundle |
|
|
120
|
+
| graphics-cfg | `graphics-cfg.tar.xz` | pd | format and core bundle |
|
|
121
|
+
| graphics-def | `graphics-def.tar.xz` | lppl1.3c | format and core bundle |
|
|
122
|
+
| hobby | `hobby.tar.xz` | lppl1.3c | extra bundles |
|
|
123
|
+
| hyphen-base | `hyphen-base.tar.xz` | (no field) | format and core bundle |
|
|
124
|
+
| knuth-lib | `knuth-lib.tar.xz` | knuth | format and core bundle |
|
|
125
|
+
| l3backend | `l3backend.tar.xz` | lppl1.3c | format and core bundle |
|
|
126
|
+
| l3kernel | `l3kernel.tar.xz` | lppl1.3c | format and core bundle |
|
|
127
|
+
| l3packages | `l3packages.tar.xz` | lppl1.3c | extra bundles |
|
|
128
|
+
| latex | `latex.tar.xz` | lppl1.3c | format and core bundle |
|
|
129
|
+
| latex-fonts | `latex-fonts.tar.xz` | lppl | format and core bundle |
|
|
130
|
+
| mhchem | `mhchem.tar.xz` | lppl1.3c | extra bundles |
|
|
131
|
+
| pgf | `pgf.tar.xz` | lppl1.3c gpl2 fdl | format and core bundle |
|
|
132
|
+
| simplekv | `simplekv.tar.xz` | lppl1.3c | extra bundles |
|
|
133
|
+
| smartdiagram | `smartdiagram.tar.xz` | lppl1.3 | extra bundles |
|
|
134
|
+
| standalone | `standalone.tar.xz` | lppl1.3 | format and core bundle |
|
|
135
|
+
| tikz-3dplot | `tikz-3dplot.tar.xz` | lppl1.3 | extra bundles |
|
|
136
|
+
| tikz-cd | `tikz-cd.tar.xz` | lppl1.3 | extra bundles |
|
|
137
|
+
| tools | `tools.tar.xz` | lppl1.3c | format and core bundle |
|
|
138
|
+
| unicode-data | `unicode-data.tar.xz` | lppl1.3c | format and core bundle |
|
|
139
|
+
| xcolor | `xcolor.tar.xz` | lppl1.3c | format and core bundle |
|
|
140
|
+
| xkeyval | `xkeyval.tar.xz` | lppl1.3 | format and core bundle |
|
|
141
|
+
| xstring | `xstring.tar.xz` | lppl1.3c | extra bundles |
|
|
142
|
+
|
|
143
|
+
### Files of Knuth (TeX Live 2023)
|
|
144
|
+
|
|
145
|
+
The licence of Knuth permits copies of an unchanged file. A changed file must have a new name. The build reads these files unchanged from the archives in the table above. This section quotes the licence lines of the files that carry them.
|
|
146
|
+
|
|
147
|
+
`fonts/source/public/cm/cmbase.mf` (package `cm`), lines 1 and 2:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbase.mf BY D E KNUTH.
|
|
151
|
+
% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
`tex/generic/hyphen/hyphen.tex` (package `hyphen-base`), lines 1 to 4:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
% The Plain TeX hyphenation tables [NOT TO BE CHANGED IN ANY WAY!]
|
|
158
|
+
% Unlimited copying and redistribution of this file are permitted as long
|
|
159
|
+
% as this file is not modified. Modifications are permitted, but only if
|
|
160
|
+
% the resulting file is not named hyphen.tex.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
The format build reads `hyphen.tex` and puts its patterns into the format `scieng.fmt`. The file lists of the bundles in `tools/tex/config.json` name neither `hyphen.tex` nor `cmbase.mf`. They name no run file of the package `knuth-lib`. The Computer Modern TFM files of the package `cm` are binary metric data and have no licence line.
|
|
103
164
|
|
|
104
165
|
### Template method credit
|
|
105
166
|
|
|
106
|
-
The package detection of the `tex` stage follows the templater of the Upmath renderer (`parpalak/i.upmath.me`, MIT). The engine credits that project for the method.
|
|
167
|
+
The package detection of the `tex` stage follows the templater of the Upmath renderer (`parpalak/i.upmath.me`, MIT). The engine credits that project for the method. Copyright 2015-2025 Roman Parpalak. Licence: MIT. The method is `lib/Templater.php` of that project. The templater tests the source for known environments and known commands. The templater adds the package that each environment or command needs. `src/tex/detect.ts` follows that method with its own tables and its own code. `src/tex/detect.ts` copies no code of the templater.
|
|
107
168
|
|
|
108
169
|
### Trial T2 sample files (LGPL-2.0-or-later, LGPL-2.1 and Apache-2.0)
|
|
109
170
|
|
package/dist/browser/render.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ChildProcess } from "node:child_process";
|
|
1
2
|
import { CdpConnection } from "./cdp.ts";
|
|
2
3
|
/** The address of the page that the client loads. The client answers it from memory, so it names no host. */
|
|
3
4
|
export declare const PAGE_URL = "http://sciengjs-page.invalid/";
|
|
@@ -56,6 +57,18 @@ export interface HtmlPageResult {
|
|
|
56
57
|
* the navigation, so a load event of an earlier document does not count.
|
|
57
58
|
*/
|
|
58
59
|
export declare function capturePage(cdp: CdpConnection, req: HtmlPageRequest, deadline: number): Promise<HtmlPageResult>;
|
|
60
|
+
/**
|
|
61
|
+
* Kills the browser and every process that it started. On POSIX the browser leads its own process group, so the
|
|
62
|
+
* group dies with one signal, also after the browser itself exited. On Windows `taskkill /T` walks the tree of a
|
|
63
|
+
* live process id. After the browser exited, Windows can give its id to an unrelated process, so the call is
|
|
64
|
+
* skipped then. A process that is already gone is not an error. macOS refuses the group signal with EPERM when only
|
|
65
|
+
* zombies are left in the group. After the browser exited, EPERM also means that no process is left to kill.
|
|
66
|
+
* `deps` holds the platform and the kill function, so that tests drive the POSIX branch on every platform.
|
|
67
|
+
*/
|
|
68
|
+
export declare function killTree(child: ChildProcess, deps?: {
|
|
69
|
+
windows: boolean;
|
|
70
|
+
kill: (pid: number, signal: NodeJS.Signals) => boolean;
|
|
71
|
+
}): void;
|
|
59
72
|
/**
|
|
60
73
|
* Draws one HTML page in a new headless browser and returns the bytes of a PNG or a PDF.
|
|
61
74
|
* The browser runs with a new profile, the forced flags and a refusing proxy. The browser sandbox stays on.
|
package/dist/browser/render.js
CHANGED
|
@@ -339,24 +339,28 @@ async function waitForExit(child, deadline) {
|
|
|
339
339
|
* Kills the browser and every process that it started. On POSIX the browser leads its own process group, so the
|
|
340
340
|
* group dies with one signal, also after the browser itself exited. On Windows `taskkill /T` walks the tree of a
|
|
341
341
|
* live process id. After the browser exited, Windows can give its id to an unrelated process, so the call is
|
|
342
|
-
* skipped then. A process that is already gone is not an error.
|
|
342
|
+
* skipped then. A process that is already gone is not an error. macOS refuses the group signal with EPERM when only
|
|
343
|
+
* zombies are left in the group. After the browser exited, EPERM also means that no process is left to kill.
|
|
344
|
+
* `deps` holds the platform and the kill function, so that tests drive the POSIX branch on every platform.
|
|
343
345
|
*/
|
|
344
|
-
function killTree(child) {
|
|
346
|
+
export function killTree(child, deps = { windows: IS_WINDOWS, kill: process.kill.bind(process) }) {
|
|
345
347
|
const pid = child.pid;
|
|
346
348
|
if (pid === undefined)
|
|
347
349
|
return;
|
|
348
|
-
if (
|
|
350
|
+
if (deps.windows) {
|
|
349
351
|
if (hasExited(child))
|
|
350
352
|
return;
|
|
351
353
|
spawnSync("taskkill", ["/PID", String(pid), "/T", "/F"], { stdio: "ignore", windowsHide: true });
|
|
352
354
|
return;
|
|
353
355
|
}
|
|
354
356
|
try {
|
|
355
|
-
|
|
357
|
+
deps.kill(-pid, "SIGKILL");
|
|
356
358
|
}
|
|
357
359
|
catch (err) {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
+
const code = err.code;
|
|
361
|
+
if (code === "ESRCH" || (code === "EPERM" && hasExited(child)))
|
|
362
|
+
return;
|
|
363
|
+
throw err;
|
|
360
364
|
}
|
|
361
365
|
}
|
|
362
366
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/browser/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/browser/render.ts"],"names":[],"mappings":"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"}
|
package/dist/core.js
CHANGED
|
@@ -49,6 +49,25 @@ export async function renderWithRegistry(req, options, registry, configDeps) {
|
|
|
49
49
|
if (pair.stage === "browser" && cfg.browser === undefined) {
|
|
50
50
|
throw new RenderError("E_STAGE_MISSING", "the browser stage needs SCIENG_BROWSER or the browser configuration key");
|
|
51
51
|
}
|
|
52
|
+
const settings = {
|
|
53
|
+
maxMemoryMb: cfg.maxMemoryMb,
|
|
54
|
+
rasterFont: cfg.rasterFont,
|
|
55
|
+
assetsUrl: cfg.assetsUrl,
|
|
56
|
+
browser: cfg.browser,
|
|
57
|
+
timeoutMs: cfg.timeoutMs,
|
|
58
|
+
allowNetwork: cfg.allowNetwork,
|
|
59
|
+
imageTimeoutMs: cfg.imageTimeoutMs,
|
|
60
|
+
maxCadNodes: cfg.maxCadNodes,
|
|
61
|
+
maxCadFacets: cfg.maxCadFacets,
|
|
62
|
+
maxImageBytes: cfg.maxImageBytes,
|
|
63
|
+
cacheDir: cfg.cacheDir,
|
|
64
|
+
texBundleUrl: cfg.texBundleUrl,
|
|
65
|
+
};
|
|
66
|
+
// A failed preload does not fail the render. The worker then loads the data itself and reports its own error,
|
|
67
|
+
// so the error codes and their order stay the same as without a preload.
|
|
68
|
+
const preloaded = entry.preload === undefined ? undefined : await entry.preload(settings, req.source).catch(() => undefined);
|
|
69
|
+
if (preloaded !== undefined)
|
|
70
|
+
settings.texCore = preloaded;
|
|
52
71
|
const out = await runInWorker({
|
|
53
72
|
moduleUrl: entry.moduleUrl,
|
|
54
73
|
backend: entry.backend,
|
|
@@ -57,18 +76,7 @@ export async function renderWithRegistry(req, options, registry, configDeps) {
|
|
|
57
76
|
format: req.format,
|
|
58
77
|
source: req.source,
|
|
59
78
|
options: (req.options ?? {}),
|
|
60
|
-
settings
|
|
61
|
-
maxMemoryMb: cfg.maxMemoryMb,
|
|
62
|
-
rasterFont: cfg.rasterFont,
|
|
63
|
-
assetsUrl: cfg.assetsUrl,
|
|
64
|
-
browser: cfg.browser,
|
|
65
|
-
timeoutMs: cfg.timeoutMs,
|
|
66
|
-
allowNetwork: cfg.allowNetwork,
|
|
67
|
-
imageTimeoutMs: cfg.imageTimeoutMs,
|
|
68
|
-
maxCadNodes: cfg.maxCadNodes,
|
|
69
|
-
maxCadFacets: cfg.maxCadFacets,
|
|
70
|
-
maxImageBytes: cfg.maxImageBytes,
|
|
71
|
-
},
|
|
79
|
+
settings,
|
|
72
80
|
},
|
|
73
81
|
}, { timeoutMs: cfg.timeoutMs, maxMemoryMb: cfg.maxMemoryMb });
|
|
74
82
|
return {
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAiB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import { type BundleSettings } from "./tex/bundles.ts";
|
|
1
2
|
/** One backend: the module that the worker loads for a (type, format) pair. */
|
|
2
3
|
export interface BackendEntry {
|
|
3
4
|
/** The backend name that a result reports, for example "graph/viz". */
|
|
4
5
|
backend: string;
|
|
5
6
|
/** An absolute file URL of a module that exports `render`. */
|
|
6
7
|
moduleUrl: string;
|
|
8
|
+
/**
|
|
9
|
+
* Loads data in the parent process before the worker starts. The worker gets the result as `settings.texCore`.
|
|
10
|
+
* A preload that returns undefined or rejects leaves the worker to load the data itself.
|
|
11
|
+
*/
|
|
12
|
+
preload?: (settings: BundleSettings, source: string | Uint8Array) => Promise<ReadonlyMap<string, Uint8Array> | undefined>;
|
|
7
13
|
}
|
|
8
14
|
/** Maps "type:format" to a backend. A key is missing when no backend is built in. */
|
|
9
15
|
export type Registry = Record<string, BackendEntry>;
|
package/dist/registry.js
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
import { extname } from "node:path";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { texCoreFiles } from "./tex/bundles.js";
|
|
4
|
+
import { detectBundles } from "./tex/detect.js";
|
|
3
5
|
/** The URL of a backend module of this package. The extension follows the build: .ts from src, .js from dist. */
|
|
4
6
|
function backendUrl(name) {
|
|
5
7
|
const extension = extname(fileURLToPath(import.meta.url));
|
|
6
8
|
return new URL(`./${name}${extension}`, import.meta.url).href;
|
|
7
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* The preload of the tikz entries. The package detection runs first. A source that the detection rejects loads no
|
|
12
|
+
* bundle: the worker then reports the error, as it does without a preload.
|
|
13
|
+
*/
|
|
14
|
+
async function texPreload(settings, source) {
|
|
15
|
+
if (typeof source !== "string")
|
|
16
|
+
return undefined;
|
|
17
|
+
try {
|
|
18
|
+
detectBundles(source);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return texCoreFiles(settings);
|
|
24
|
+
}
|
|
8
25
|
/** The backends of this build. */
|
|
9
26
|
export const DEFAULT_REGISTRY = {
|
|
10
27
|
"dot:svg": { backend: "graph/viz", moduleUrl: backendUrl("graph/backend-svg") },
|
|
@@ -35,6 +52,9 @@ export const DEFAULT_REGISTRY = {
|
|
|
35
52
|
"cad:stl": { backend: "mesh/manifold+stl", moduleUrl: backendUrl("mesh/backend-stl") },
|
|
36
53
|
"cad:html": { backend: "mesh/manifold+viewer", moduleUrl: backendUrl("mesh/backend-html") },
|
|
37
54
|
"cad:png": { backend: "mesh/manifold+viewer+browser/chromium", moduleUrl: backendUrl("mesh/backend-png") },
|
|
55
|
+
"tikz:svg": { backend: "tex/etex", moduleUrl: backendUrl("tex/backend-svg"), preload: texPreload },
|
|
56
|
+
"tikz:png": { backend: "tex/etex+raster/resvg", moduleUrl: backendUrl("tex/backend-png"), preload: texPreload },
|
|
57
|
+
"tikz:pdf": { backend: "tex/etex+browser/chromium", moduleUrl: backendUrl("tex/backend-pdf"), preload: texPreload },
|
|
38
58
|
"sysml:svg": { backend: "sysml/graph", moduleUrl: backendUrl("sysml/backend-svg") },
|
|
39
59
|
"sysml:png": { backend: "sysml/graph+raster/resvg", moduleUrl: backendUrl("sysml/backend-png") },
|
|
40
60
|
"sysml:pdf": { backend: "sysml/graph+browser/chromium", moduleUrl: backendUrl("sysml/backend-pdf") },
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { sourceText } from "../graph/text.js";
|
|
2
|
+
import { drawSvgToPdf } from "../mermaid/browser.js";
|
|
3
|
+
import { renderTikzSvg } from "./stage.js";
|
|
4
|
+
/** Renders one tikz source to pdf: the SVG of the tex stage, then the pdf of that SVG in the browser stage. */
|
|
5
|
+
export async function render(request) {
|
|
6
|
+
const svg = await renderTikzSvg(sourceText(request.source), request.options, request.settings);
|
|
7
|
+
const draw = await drawSvgToPdf(svg.svg, request.settings);
|
|
8
|
+
return { bytes: draw.bytes, warnings: [...svg.warnings, ...draw.warnings] };
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=backend-pdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-pdf.js","sourceRoot":"","sources":["../../src/tex/backend-pdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,+GAA+G;AAC/G,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAA6B;IACxD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BackendOutput, WorkerJob } from "../worker/protocol.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Renders one tikz source to PNG: the SVG of the tex stage, then the raster stage. The option scale multiplies the pixel
|
|
4
|
+
* size. The worker calls this function for the tikz:png pair.
|
|
5
|
+
*/
|
|
6
|
+
export declare function render(request: WorkerJob["request"]): Promise<BackendOutput>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { MAX_SCALE } from "../browser/input.js";
|
|
2
|
+
import { RenderError } from "../errors.js";
|
|
3
|
+
import { readScale, svgDocumentToPng } from "../graph/backend-png.js";
|
|
4
|
+
import { sourceText } from "../graph/text.js";
|
|
5
|
+
import { renderTikzSvg } from "./stage.js";
|
|
6
|
+
/**
|
|
7
|
+
* Renders one tikz source to PNG: the SVG of the tex stage, then the raster stage. The option scale multiplies the pixel
|
|
8
|
+
* size. The worker calls this function for the tikz:png pair.
|
|
9
|
+
*/
|
|
10
|
+
export async function render(request) {
|
|
11
|
+
const { scale: _scale, ...rest } = request.options;
|
|
12
|
+
const scale = readScale(request.options);
|
|
13
|
+
if (scale > MAX_SCALE)
|
|
14
|
+
throw new RenderError("E_INPUT", `option scale must not be more than ${MAX_SCALE}`);
|
|
15
|
+
const svg = await renderTikzSvg(sourceText(request.source), rest, request.settings);
|
|
16
|
+
const png = await svgDocumentToPng(svg.svg, request, scale);
|
|
17
|
+
return { bytes: png.bytes, warnings: [...svg.warnings, ...(png.warnings ?? [])] };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=backend-png.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-png.js","sourceRoot":"","sources":["../../src/tex/backend-png.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAA6B;IACxD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,GAAG,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,sCAAsC,SAAS,EAAE,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpF,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BackendOutput, WorkerJob } from "../worker/protocol.ts";
|
|
2
|
+
/** Renders one tikz source to SVG through the tex stage. The worker calls this function for the tikz:svg pair. */
|
|
3
|
+
export declare function render(request: WorkerJob["request"]): Promise<BackendOutput>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { sourceText } from "../graph/text.js";
|
|
2
|
+
import { renderTikzSvg } from "./stage.js";
|
|
3
|
+
/** Renders one tikz source to SVG through the tex stage. The worker calls this function for the tikz:svg pair. */
|
|
4
|
+
export async function render(request) {
|
|
5
|
+
const result = await renderTikzSvg(sourceText(request.source), request.options, request.settings);
|
|
6
|
+
return { bytes: new TextEncoder().encode(result.svg), warnings: result.warnings };
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=backend-svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-svg.js","sourceRoot":"","sources":["../../src/tex/backend-svg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,kHAAkH;AAClH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAA6B;IACxD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClG,OAAO,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { NetworkPolicy } from "../config.ts";
|
|
2
|
+
import type { BundleName } from "./detect.ts";
|
|
3
|
+
/** One bundle of the engine package: its name, the file name on the download server, the pinned sha256 and the size. */
|
|
4
|
+
export interface BundleEntry {
|
|
5
|
+
name: BundleName;
|
|
6
|
+
file: string;
|
|
7
|
+
sha256: string;
|
|
8
|
+
bytes: number;
|
|
9
|
+
}
|
|
10
|
+
/** The bundles of this build. `tools/tex/bundles.mjs` writes `bundles.json`, and CI fails when a built bundle differs from it. */
|
|
11
|
+
export declare const BUNDLES: readonly BundleEntry[];
|
|
12
|
+
/** The configuration values that the bundle manager reads. */
|
|
13
|
+
export interface BundleSettings {
|
|
14
|
+
/** The folder of the cache. The bundles go in its `tex-bundles` folder. */
|
|
15
|
+
cacheDir: string;
|
|
16
|
+
/** The base URL of the bundles. The download URL of a bundle is this value and the file name. */
|
|
17
|
+
texBundleUrl: string;
|
|
18
|
+
/** The network rule. A download needs `tex-bundles` in it. */
|
|
19
|
+
allowNetwork: NetworkPolicy;
|
|
20
|
+
/** The time limit of one download, in milliseconds. */
|
|
21
|
+
timeoutMs: number;
|
|
22
|
+
}
|
|
23
|
+
/** The sub-folder of the cache folder for the bundles. */
|
|
24
|
+
export declare const CACHE_SUBFOLDER = "tex-bundles";
|
|
25
|
+
/** The path of a bundle in the cache. */
|
|
26
|
+
export declare function cachePath(entry: BundleEntry, settings: Pick<BundleSettings, "cacheDir">): string;
|
|
27
|
+
/** The download URL of a bundle. A base URL with no end slash gets one. */
|
|
28
|
+
export declare function bundleUrl(entry: BundleEntry, settings: Pick<BundleSettings, "texBundleUrl">): string;
|
|
29
|
+
/** Looks up a bundle of the list by name. A name that is not in the list is an internal error. */
|
|
30
|
+
export declare function findBundle(name: BundleName, bundles?: readonly BundleEntry[]): BundleEntry;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the verified bytes of a bundle. The order is the cache, then the download.
|
|
33
|
+
* A cached file is hashed on every load. A cached file with a wrong hash is deleted, and the load goes on to the download.
|
|
34
|
+
* A download is allowed only when `allowNetwork` has `tex-bundles`. It goes to a temporary file in the cache folder,
|
|
35
|
+
* its hash and size are checked, and only then does a rename put it in place. A wrong hash deletes the temporary file and
|
|
36
|
+
* rejects with `E_INTEGRITY`, so a wrong file never stays in the cache. A bundle that is not cached, with the download not allowed,
|
|
37
|
+
* rejects with `E_STAGE_MISSING`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function loadBundleBytes(entry: BundleEntry, settings: BundleSettings): Promise<Uint8Array>;
|
|
40
|
+
/** Unpacks an SCTB1 container (see `tools/tex/bundles.mjs`) to a map from the tree name to the file bytes. */
|
|
41
|
+
export declare function unpackBundle(bytes: Uint8Array): Map<string, Uint8Array>;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the files of the core bundle. The parent process loads, checks and unpacks the bundle once. Each render
|
|
44
|
+
* worker then gets a copy of the files, so a fresh worker does not read, hash and inflate the bundle again. A load
|
|
45
|
+
* that rejects is not kept, so a later render tries again. `load` is a parameter so that tests replace it.
|
|
46
|
+
*/
|
|
47
|
+
export declare function texCoreFiles(settings: BundleSettings, load?: (settings: BundleSettings) => Promise<ReadonlyMap<string, Uint8Array>>): Promise<ReadonlyMap<string, Uint8Array>>;
|
|
48
|
+
/** Loads the named bundles and returns the files of each, in the order of the names. A name twice loads once. */
|
|
49
|
+
export declare function loadBundles(names: readonly BundleName[], settings: BundleSettings, bundles?: readonly BundleEntry[]): Promise<Map<BundleName, Map<string, Uint8Array>>>;
|