@danielsimonjr/sciengjs 0.1.0 → 0.1.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 CHANGED
@@ -112,6 +112,7 @@ Each render takes an optional configuration as its second argument. An environme
112
112
  | `maxSourceBytes` | `SCIENG_MAX_SOURCE_BYTES` | 10485760 (10 MiB) |
113
113
  | `maxMemoryMb` | `SCIENG_MAX_MEMORY_MB` | 2048 |
114
114
  | `rasterFont` | `SCIENG_RASTER_FONT` | the bundled Liberation Serif |
115
+ | `assetsUrl` | `SCIENG_ASSETS_URL` | the `assets/` folder of the package, which holds the font and `index_bg.wasm`. A `file:` URL with a host other than `localhost` rejects with `E_CONFIG`. |
115
116
  | `allowNetwork` | `SCIENG_ALLOW_NETWORK` | `tex-bundles` (the DOT path makes no request) |
116
117
 
117
118
  `SCIENG_CONFIG` names a JSON configuration file. `loadConfig` returns the resolved configuration.
Binary file
@@ -0,0 +1,12 @@
1
+ /** Relative path of the bundled Liberation Serif font inside the assets folder. */
2
+ export declare const BUNDLED_FONT_FILE = "fonts/LiberationSerif-Regular.ttf";
3
+ /** File name of the bundled resvg WebAssembly module inside the assets folder. */
4
+ export declare const RESVG_WASM_FILE = "index_bg.wasm";
5
+ /** Validates a raw assets-folder URL syntactically and returns its href with a trailing slash. */
6
+ export declare function checkAssetsUrl(value: unknown, label: string): string;
7
+ /** Resolves a relative file under the assets folder URL to an OS path. */
8
+ export declare function assetFile(assetsUrl: string, file: string): string;
9
+ /** Resolves the OS path of the bundled font inside the assets folder. */
10
+ export declare function bundledFontPathIn(assetsUrl: string): string;
11
+ /** Reads an asset file from the assets folder and returns its bytes. */
12
+ export declare function readAsset(assetsUrl: string, file: string): Uint8Array;
package/dist/assets.js ADDED
@@ -0,0 +1,63 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ import { RenderError } from "./errors.js";
4
+ /** Relative path of the bundled Liberation Serif font inside the assets folder. */
5
+ export const BUNDLED_FONT_FILE = "fonts/LiberationSerif-Regular.ttf";
6
+ /** File name of the bundled resvg WebAssembly module inside the assets folder. */
7
+ export const RESVG_WASM_FILE = "index_bg.wasm";
8
+ /** Validates a raw assets-folder URL syntactically and returns its href with a trailing slash. */
9
+ export function checkAssetsUrl(value, label) {
10
+ if (typeof value !== "string") {
11
+ throw new RenderError("E_CONFIG", label + " must be a string holding a file: URL, but got " + typeof value);
12
+ }
13
+ let url;
14
+ try {
15
+ url = new URL(value);
16
+ }
17
+ catch {
18
+ throw new RenderError("E_CONFIG", label + " is not a valid URL: " + JSON.stringify(value));
19
+ }
20
+ if (url.protocol !== "file:") {
21
+ throw new RenderError("E_CONFIG", label + " must be a file: URL, but got protocol " + url.protocol);
22
+ }
23
+ // The URL parser maps the host localhost to an empty host. Any other host names a network share on Windows.
24
+ if (url.hostname !== "") {
25
+ throw new RenderError("E_CONFIG", label + " must be a file: URL with no host or with the host localhost: " + JSON.stringify(value));
26
+ }
27
+ if (/[?#]/.test(value)) {
28
+ throw new RenderError("E_CONFIG", label + " must be a folder URL with no query and no fragment: " + JSON.stringify(value));
29
+ }
30
+ if (/%2F|%5C/i.test(url.pathname)) {
31
+ throw new RenderError("E_CONFIG", label + " must not hold an encoded slash or backslash in its path: " + JSON.stringify(value));
32
+ }
33
+ if (!url.pathname.endsWith("/"))
34
+ url.pathname += "/";
35
+ return url.href;
36
+ }
37
+ /** Resolves a relative file under the assets folder URL to an OS path. */
38
+ export function assetFile(assetsUrl, file) {
39
+ const base = checkAssetsUrl(assetsUrl, "assetsUrl");
40
+ try {
41
+ return fileURLToPath(new URL(file, base));
42
+ }
43
+ catch (error) {
44
+ const message = error instanceof Error ? error.message : String(error);
45
+ throw new RenderError("E_CONFIG", "assetsUrl cannot be opened as a folder on this system: " + JSON.stringify(assetsUrl) + ": " + message);
46
+ }
47
+ }
48
+ /** Resolves the OS path of the bundled font inside the assets folder. */
49
+ export function bundledFontPathIn(assetsUrl) {
50
+ return assetFile(assetsUrl, BUNDLED_FONT_FILE);
51
+ }
52
+ /** Reads an asset file from the assets folder and returns its bytes. */
53
+ export function readAsset(assetsUrl, file) {
54
+ const path = assetFile(assetsUrl, file);
55
+ try {
56
+ return readFileSync(path);
57
+ }
58
+ catch (err) {
59
+ const message = err instanceof Error ? err.message : String(err);
60
+ throw new RenderError("E_STAGE_MISSING", file + " cannot be read: " + path + ": " + message);
61
+ }
62
+ }
63
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -10,6 +10,8 @@ export interface SciengConfig {
10
10
  maxSourceBytes: number;
11
11
  maxMemoryMb: number;
12
12
  allowNetwork: NetworkPolicy;
13
+ /** The folder URL that holds the fonts folder and the resvg WASM file. */
14
+ assetsUrl: string;
13
15
  /** Path of a TrueType or OpenType file that the raster stage uses in place of the bundled font. */
14
16
  rasterFont?: string;
15
17
  }
@@ -21,6 +23,8 @@ export interface ConfigDeps {
21
23
  readFile: (filePath: string) => Promise<string>;
22
24
  engineVersion: string;
23
25
  }
26
+ /** The assets folder of the package, resolved relative to this file. */
27
+ export declare const DEFAULT_ASSETS_URL: string;
24
28
  /**
25
29
  * Resolves the configuration. Precedence: call option, then environment, then file, then default.
26
30
  * Any unreadable or invalid source rejects with E_CONFIG. The loader never falls back to defaults for the source.
package/dist/config.js CHANGED
@@ -2,6 +2,10 @@ import { homedir as osHomedir } from "node:os";
2
2
  import { readFile as fsReadFile } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { RenderError } from "./errors.js";
5
+ import { ENGINE_VERSION } from "./version.js";
6
+ import { checkAssetsUrl } from "./assets.js";
7
+ /** The assets folder of the package, resolved relative to this file. */
8
+ export const DEFAULT_ASSETS_URL = new URL("../assets/", import.meta.url).href;
5
9
  const ENV = {
6
10
  configFile: "SCIENG_CONFIG",
7
11
  browser: "SCIENG_BROWSER",
@@ -11,21 +15,13 @@ const ENV = {
11
15
  maxSourceBytes: "SCIENG_MAX_SOURCE_BYTES",
12
16
  maxMemoryMb: "SCIENG_MAX_MEMORY_MB",
13
17
  allowNetwork: "SCIENG_ALLOW_NETWORK",
18
+ assetsUrl: "SCIENG_ASSETS_URL",
14
19
  rasterFont: "SCIENG_RASTER_FONT",
15
20
  };
16
21
  const RELEASE_URL_BASE = "https://github.com/danielsimonjr/sciengjs/releases/download";
17
22
  const NETWORK_POLICIES = ["none", "tex-bundles", "tex-bundles,images"];
18
23
  const CONFIG_FILE_NAME = "config.json";
19
24
  const APP_FOLDER = "scieng";
20
- /** Reads the engine version from the package file one folder above `src` or `dist`. */
21
- async function readEngineVersion() {
22
- const text = await fsReadFile(new URL("../package.json", import.meta.url), "utf8");
23
- const version = JSON.parse(text).version;
24
- if (typeof version !== "string") {
25
- throw new RenderError("E_CONFIG", "package.json has no version string");
26
- }
27
- return version;
28
- }
29
25
  /** The platform folder for configuration. A missing platform variable fails loudly. */
30
26
  function configBaseDir(d) {
31
27
  if (d.platform === "win32")
@@ -60,6 +56,7 @@ function defaults(engineVersion) {
60
56
  maxSourceBytes: 10485760,
61
57
  maxMemoryMb: 2048,
62
58
  allowNetwork: "tex-bundles",
59
+ assetsUrl: DEFAULT_ASSETS_URL,
63
60
  };
64
61
  }
65
62
  function defaultConfigPath(d) {
@@ -91,6 +88,8 @@ function checkValue(key, value, source) {
91
88
  return fail(`must be one of ${NETWORK_POLICIES.join(", ")}`);
92
89
  }
93
90
  return value;
91
+ case "assetsUrl":
92
+ return checkAssetsUrl(value, `${source}: ${key}`);
94
93
  }
95
94
  }
96
95
  /** Converts an environment text to a value of the key. Numbers must be whole and positive. */
@@ -111,6 +110,7 @@ const ENV_KEYS = {
111
110
  maxSourceBytes: ENV.maxSourceBytes,
112
111
  maxMemoryMb: ENV.maxMemoryMb,
113
112
  allowNetwork: ENV.allowNetwork,
113
+ assetsUrl: ENV.assetsUrl,
114
114
  rasterFont: ENV.rasterFont,
115
115
  };
116
116
  /** Reads the config file. A missing file is fine only at the default path. */
@@ -152,7 +152,7 @@ export async function loadConfig(options = {}, deps = {}) {
152
152
  platform: process.platform,
153
153
  homedir: osHomedir(),
154
154
  readFile: (p) => fsReadFile(p, "utf8"),
155
- engineVersion: await readEngineVersion(),
155
+ engineVersion: ENGINE_VERSION,
156
156
  ...deps,
157
157
  };
158
158
  const explicitPath = nonEmpty(d.env[ENV.configFile]);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/core.js CHANGED
@@ -57,7 +57,7 @@ export async function renderWithRegistry(req, options, registry, configDeps) {
57
57
  format: req.format,
58
58
  source: req.source,
59
59
  options: (req.options ?? {}),
60
- settings: { maxMemoryMb: cfg.maxMemoryMb, rasterFont: cfg.rasterFont },
60
+ settings: { maxMemoryMb: cfg.maxMemoryMb, rasterFont: cfg.rasterFont, assetsUrl: cfg.assetsUrl },
61
61
  },
62
62
  }, { timeoutMs: cfg.timeoutMs, maxMemoryMb: cfg.maxMemoryMb });
63
63
  return {
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -16,3 +16,9 @@ export declare class RenderError extends Error {
16
16
  readonly column: number | undefined;
17
17
  constructor(code: RenderErrorCode, message: string, position?: RenderErrorPosition);
18
18
  }
19
+ /**
20
+ * Whether the value is a render error, decided structurally instead of by class identity.
21
+ * A bundle can hold more than one copy of the errors module, so an error from another copy
22
+ * fails `instanceof RenderError`. The check matches the name and the code instead.
23
+ */
24
+ export declare function isRenderError(value: unknown): value is RenderError;
package/dist/errors.js CHANGED
@@ -22,4 +22,19 @@ export class RenderError extends Error {
22
22
  this.column = position.column;
23
23
  }
24
24
  }
25
+ /**
26
+ * Whether the value is a render error, decided structurally instead of by class identity.
27
+ * A bundle can hold more than one copy of the errors module, so an error from another copy
28
+ * fails `instanceof RenderError`. The check matches the name and the code instead.
29
+ */
30
+ export function isRenderError(value) {
31
+ if (!(value instanceof Error) || value.name !== "RenderError") {
32
+ return false;
33
+ }
34
+ const code = value.code;
35
+ if (typeof code !== "string") {
36
+ return false;
37
+ }
38
+ return RENDER_ERROR_CODES.includes(code);
39
+ }
25
40
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,eAAe;IACf,SAAS;IACT,WAAW;IACX,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,YAAY;CACJ,CAAC;AAaX,wDAAwD;AACxD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAkB;IACtB,IAAI,CAAqB;IACzB,MAAM,CAAqB;IAEpC,YAAY,IAAqB,EAAE,OAAe,EAAE,QAAQ,GAAwB,EAAE;QACpF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,eAAe;IACf,SAAS;IACT,WAAW;IACX,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,YAAY;CACJ,CAAC;AAaX,wDAAwD;AACxD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAkB;IACtB,IAAI,CAAqB;IACzB,MAAM,CAAqB;IAEpC,YAAY,IAAqB,EAAE,OAAe,EAAE,QAAQ,GAAwB,EAAE;QACpF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { BackendOutput, WorkerJob } from "../worker/protocol.ts";
2
- /** Renders dot to png: the SVG of the graph, then the PNG of that SVG at the option scale. */
2
+ /** Renders dot to png: the SVG of the graph, then the PNG of that SVG at the option scale. The bundled font comes from the assets folder named in the settings. */
3
3
  export declare function render(request: WorkerJob["request"]): Promise<BackendOutput>;
4
4
  /** Renders dot to png with the bundled font at the given path. The path is a parameter so that a test can name a missing or invalid bundled font. */
5
5
  export declare function renderPng(request: WorkerJob["request"], bundledFontPath: string): Promise<BackendOutput>;
@@ -1,10 +1,9 @@
1
1
  import { readFileSync } from "node:fs";
2
- import { fileURLToPath } from "node:url";
3
2
  import { RenderError } from "../errors.js";
3
+ import { bundledFontPathIn } from "../assets.js";
4
4
  import { dotSourceText, dotToSvg } from "./dot.js";
5
5
  import { isFontFile, svgToPng } from "../raster/index.js";
6
6
  import { rasterWarnings } from "../raster/warnings.js";
7
- const BUNDLED_FONT_PATH = fileURLToPath(new URL("../../assets/fonts/LiberationSerif-Regular.ttf", import.meta.url));
8
7
  function readFont(path, bundled) {
9
8
  let bytes;
10
9
  try {
@@ -22,9 +21,9 @@ function readFont(path, bundled) {
22
21
  }
23
22
  return bytes;
24
23
  }
25
- /** Renders dot to png: the SVG of the graph, then the PNG of that SVG at the option scale. */
26
- export function render(request) {
27
- return renderPng(request, BUNDLED_FONT_PATH);
24
+ /** Renders dot to png: the SVG of the graph, then the PNG of that SVG at the option scale. The bundled font comes from the assets folder named in the settings. */
25
+ export async function render(request) {
26
+ return renderPng(request, bundledFontPathIn(request.settings.assetsUrl));
28
27
  }
29
28
  /** Renders dot to png with the bundled font at the given path. The path is a parameter so that a test can name a missing or invalid bundled font. */
30
29
  export async function renderPng(request, bundledFontPath) {
@@ -51,6 +50,7 @@ export async function renderPng(request, bundledFontPath) {
51
50
  scale,
52
51
  maxMemoryMb: request.settings.maxMemoryMb,
53
52
  font,
53
+ assetsUrl: request.settings.assetsUrl,
54
54
  });
55
55
  return { bytes, warnings: [...dot.warnings, ...rasterWarnings(dot.svg, font)] };
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backend-png.js","sourceRoot":"","sources":["../../src/graph/backend-png.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-png.js","sourceRoot":"","sources":["../../src/graph/backend-png.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,12 @@ export interface SvgToPngOptions {
9
9
  scale: number;
10
10
  maxMemoryMb: number;
11
11
  font?: Uint8Array;
12
+ /**
13
+ * The folder URL of the bundled files. When the folder URL is absent, the code uses the
14
+ * package assets folder (DEFAULT_ASSETS_URL). The code reads the WASM file from this folder on
15
+ * the first start of the module only.
16
+ */
17
+ assetsUrl?: string;
12
18
  /** Replaces the reader of the resvg WASM file. Tests use it to fail the first start. */
13
19
  readWasm?: () => Uint8Array;
14
20
  }
@@ -1,6 +1,6 @@
1
1
  import { initWasm, Resvg } from "@resvg/resvg-wasm";
2
- import { readFileSync } from "node:fs";
3
- import { createRequire } from "node:module";
2
+ import { readAsset, RESVG_WASM_FILE } from "../assets.js";
3
+ import { DEFAULT_ASSETS_URL } from "../config.js";
4
4
  import { RenderError } from "../errors.js";
5
5
  /**
6
6
  * The most megabytes of RGBA pixels that one PNG render accepts. Measured: a render holds about two
@@ -9,14 +9,19 @@ import { RenderError } from "../errors.js";
9
9
  */
10
10
  export const MAX_PNG_PIXEL_MB = 1024;
11
11
  let wasmPromise;
12
- function defaultReadWasm() {
13
- return readFileSync(createRequire(import.meta.url).resolve("@resvg/resvg-wasm/index_bg.wasm"));
14
- }
12
+ // The first start decides the bytes; later calls reuse the started module whatever their assetsUrl.
15
13
  // A failed start is not cached, so a later render can try again.
16
14
  function ensureWasm(readWasm) {
17
15
  if (wasmPromise === undefined) {
18
16
  const started = (async () => {
19
- await initWasm(readWasm());
17
+ const bytes = readWasm();
18
+ try {
19
+ await initWasm(bytes);
20
+ }
21
+ catch (err) {
22
+ const message = err instanceof Error ? err.message : String(err);
23
+ throw new RenderError("E_STAGE_MISSING", RESVG_WASM_FILE + " is not a usable WebAssembly module: " + message);
24
+ }
20
25
  })();
21
26
  wasmPromise = started;
22
27
  started.catch(() => {
@@ -29,7 +34,8 @@ function ensureWasm(readWasm) {
29
34
  }
30
35
  /** Renders an SVG to PNG bytes with resvg. The scale multiplies the SVG size. A pixel buffer over maxMemoryMb or over MAX_PNG_PIXEL_MB rejects with E_LIMIT. */
31
36
  export async function svgToPng(svg, options) {
32
- await ensureWasm(options.readWasm ?? defaultReadWasm);
37
+ const assetsUrl = options.assetsUrl ?? DEFAULT_ASSETS_URL;
38
+ await ensureWasm(options.readWasm ?? (() => readAsset(assetsUrl, RESVG_WASM_FILE)));
33
39
  let resvg;
34
40
  try {
35
41
  resvg = new Resvg(svg, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/raster/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const ENGINE_VERSION = "0.1.1";
@@ -0,0 +1,3 @@
1
+ // Generated by scripts/prepare-build.mjs from package.json. Do not edit this file by hand.
2
+ export const ENGINE_VERSION = "0.1.1";
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
@@ -7,7 +7,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
7
7
  return path;
8
8
  };
9
9
  import { parentPort, workerData } from "node:worker_threads";
10
- import { RenderError, RENDER_ERROR_CODES } from "../errors.js";
10
+ import { RenderError, RENDER_ERROR_CODES, isRenderError } from "../errors.js";
11
11
  /**
12
12
  * The worker side of a render. The worker loads the backend module, runs one request and posts one message.
13
13
  * A backend error that is a RenderError keeps its code. Any other error maps to E_INTERNAL.
@@ -22,7 +22,7 @@ async function run(job) {
22
22
  return { ok: true, bytes: out.bytes, warnings: out.warnings ?? [] };
23
23
  }
24
24
  catch (err) {
25
- if (err instanceof RenderError) {
25
+ if (isRenderError(err)) {
26
26
  return { ok: false, code: err.code, message: err.message, line: err.line, column: err.column };
27
27
  }
28
28
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/worker/entry.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAwB,MAAM,cAAc,CAAC;AAGrF;;;GAGG;AACH,KAAK,UAAU,GAAG,CAAC,GAAc;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,kCAAC,GAAG,CAAC,SAAS,EAAC,CAAuF,CAAC;QAChI,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,kBAAkB,GAAG,CAAC,SAAS,6BAA6B,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACjG,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,GAAG,GAAG,UAAuB,CAAC;AACpC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAE,kBAAwC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACrF,OAAO,CAAC,IAAI,GAAG,YAAsC,CAAC;AACxD,CAAC;AACD,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/worker/entry.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAwB,MAAM,cAAc,CAAC;AAGpG;;;GAGG;AACH,KAAK,UAAU,GAAG,CAAC,GAAc;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,kCAAC,GAAG,CAAC,SAAS,EAAC,CAAuF,CAAC;QAChI,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,kBAAkB,GAAG,CAAC,SAAS,6BAA6B,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACjG,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,GAAG,GAAG,UAAuB,CAAC;AACpC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAE,kBAAwC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACrF,OAAO,CAAC,IAAI,GAAG,YAAsC,CAAC;AACxD,CAAC;AACD,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC"}
@@ -5,6 +5,8 @@ export interface BackendSettings {
5
5
  maxMemoryMb: number;
6
6
  /** The path of the raster font that replaces the bundled font, or undefined for the bundled font. */
7
7
  rasterFont: string | undefined;
8
+ /** The folder URL of the bundled files: the raster font and the resvg WASM file. */
9
+ assetsUrl: string;
8
10
  }
9
11
  /** What the worker receives: one render request and the backend module that serves it. */
10
12
  export interface WorkerJob {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danielsimonjr/sciengjs",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "description": "A local rendering engine for science and engineering diagrams, documents and models",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "LICENSE"
32
32
  ],
33
33
  "scripts": {
34
- "build": "tsc -p tsconfig.build.json",
34
+ "build": "node scripts/prepare-build.mjs && tsc -p tsconfig.build.json",
35
35
  "typecheck": "tsc --noEmit",
36
36
  "test": "bun test",
37
37
  "smoke": "node test/smoke/smoke.mjs",