postext 0.3.38 → 0.3.40
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/dist/__bench__/chapter.bench.test.d.ts +2 -0
- package/dist/__bench__/chapter.bench.test.d.ts.map +1 -0
- package/dist/__bench__/chapter.bench.test.js +80 -0
- package/dist/__bench__/chapter.bench.test.js.map +1 -0
- package/dist/__tests__/buildAsync.test.d.ts +2 -0
- package/dist/__tests__/buildAsync.test.d.ts.map +1 -0
- package/dist/__tests__/buildAsync.test.js +50 -0
- package/dist/__tests__/buildAsync.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +5 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/hyphenateMemo.test.d.ts +2 -0
- package/dist/__tests__/hyphenateMemo.test.d.ts.map +1 -0
- package/dist/__tests__/hyphenateMemo.test.js +21 -0
- package/dist/__tests__/hyphenateMemo.test.js.map +1 -0
- package/dist/__tests__/knuthPlassMerge.test.d.ts +2 -0
- package/dist/__tests__/knuthPlassMerge.test.d.ts.map +1 -0
- package/dist/__tests__/knuthPlassMerge.test.js +55 -0
- package/dist/__tests__/knuthPlassMerge.test.js.map +1 -0
- package/dist/__tests__/memos.test.d.ts +2 -0
- package/dist/__tests__/memos.test.d.ts.map +1 -0
- package/dist/__tests__/memos.test.js +37 -0
- package/dist/__tests__/memos.test.js.map +1 -0
- package/dist/__tests__/pipeline/rotatedResource.test.d.ts +2 -0
- package/dist/__tests__/pipeline/rotatedResource.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/rotatedResource.test.js +242 -0
- package/dist/__tests__/pipeline/rotatedResource.test.js.map +1 -0
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +7 -1
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/index.d.ts +5 -0
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +7 -4
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +21 -4
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/canvas-backend/swatch.d.ts +8 -0
- package/dist/canvas-backend/swatch.d.ts.map +1 -0
- package/dist/canvas-backend/swatch.js +20 -0
- package/dist/canvas-backend/swatch.js.map +1 -0
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +38 -10
- package/dist/html-backend.js.map +1 -1
- package/dist/hyphenate.d.ts.map +1 -1
- package/dist/hyphenate.js +50 -1
- package/dist/hyphenate.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/breakpoints.d.ts.map +1 -1
- package/dist/knuthPlass/breakpoints.js +7 -1
- package/dist/knuthPlass/breakpoints.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +4 -0
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +2 -1
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/knuthPlass/types.d.ts +8 -0
- package/dist/knuthPlass/types.d.ts.map +1 -1
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +1 -0
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts +8 -0
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +25 -2
- package/dist/measure/rich.js.map +1 -1
- package/dist/parse/blockParser.d.ts +5 -3
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +45 -30
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/index.d.ts +2 -0
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js +1 -0
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +26 -0
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +45 -0
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/inlineSnippet.d.ts +1 -1
- package/dist/parse/inlineSnippet.d.ts.map +1 -1
- package/dist/parse/inlineSnippet.js +4 -3
- package/dist/parse/inlineSnippet.js.map +1 -1
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +19 -1
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +10 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.d.ts +16 -0
- package/dist/pipeline/bandCaps.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.js +22 -0
- package/dist/pipeline/bandCaps.js.map +1 -1
- package/dist/pipeline/build.d.ts +33 -0
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +140 -38
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +18 -0
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/floatPlacement.d.ts +10 -3
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +10 -5
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/floatSlots.d.ts +3 -0
- package/dist/pipeline/floatSlots.d.ts.map +1 -1
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/index.d.ts +2 -2
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +1 -1
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +6 -2
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +16 -2
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +51 -4
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/table/model.d.ts +7 -1
- package/dist/table/model.d.ts.map +1 -1
- package/dist/table/model.js +19 -0
- package/dist/table/model.js.map +1 -1
- package/dist/types.d.ts +18 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +50 -1
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +29 -0
- package/dist/vdt.js.map +1 -1
- package/dist/worker/client.d.ts +18 -2
- package/dist/worker/client.d.ts.map +1 -1
- package/dist/worker/client.js +28 -3
- package/dist/worker/client.js.map +1 -1
- package/dist/worker/layout.worker.js +135 -56
- package/dist/worker/layout.worker.js.map +1 -1
- package/dist/worker/protocol.d.ts +27 -2
- package/dist/worker/protocol.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import type { PostextContent, PostextConfig } from '../types';
|
|
2
2
|
import type { VDTDocument } from '../vdt';
|
|
3
|
-
import type { BuildProgress } from '../pipeline/build';
|
|
3
|
+
import type { BuildPassInfo, BuildProgress } from '../pipeline/build';
|
|
4
|
+
/** Where a build's time went (dev tooling; always attached, cheap). */
|
|
5
|
+
export interface BuildStats {
|
|
6
|
+
/** Every placement pass, in build order. */
|
|
7
|
+
passes: BuildPassInfo[];
|
|
8
|
+
/** Wall time of the whole build inside the worker, in ms. */
|
|
9
|
+
totalMs: number;
|
|
10
|
+
/** The document came from the worker's cache (no pass was run). */
|
|
11
|
+
cached?: boolean;
|
|
12
|
+
}
|
|
4
13
|
export interface FontPayload {
|
|
5
14
|
family: string;
|
|
6
15
|
weight: string;
|
|
@@ -26,6 +35,20 @@ export type RequestMessage = {
|
|
|
26
35
|
id: number;
|
|
27
36
|
content: PostextContent;
|
|
28
37
|
config?: PostextConfig;
|
|
38
|
+
/** Fingerprint of `content.resources`. When it matches the list the
|
|
39
|
+
* worker last received, `content.resources` may be left out and the
|
|
40
|
+
* worker lays out with the list it already holds — the resources of
|
|
41
|
+
* a book (hundreds of tables and figures) are the bulk of a build
|
|
42
|
+
* message and change far less often than the text. */
|
|
43
|
+
resourcesKey?: string;
|
|
44
|
+
/** Fingerprint of everything the document depends on. The worker
|
|
45
|
+
* keeps the last few documents by it: a build whose key it holds
|
|
46
|
+
* is answered from the cache, and a finished build is stored under
|
|
47
|
+
* it. Omit for a document not worth keeping (screen geometry). */
|
|
48
|
+
cacheKey?: string;
|
|
49
|
+
/** False: build (and cache) the document but do not send it back —
|
|
50
|
+
* warming the cache for a chapter the reader may open next. */
|
|
51
|
+
wantDoc?: boolean;
|
|
29
52
|
} | {
|
|
30
53
|
kind: 'cancel';
|
|
31
54
|
/** Id of the in-flight build to cancel. */
|
|
@@ -36,7 +59,9 @@ export type RequestMessage = {
|
|
|
36
59
|
export type ResponseMessage = {
|
|
37
60
|
kind: 'built';
|
|
38
61
|
id: number;
|
|
39
|
-
|
|
62
|
+
/** Null when the build asked for no document (`wantDoc: false`). */
|
|
63
|
+
doc: VDTDocument | null;
|
|
64
|
+
stats: BuildStats;
|
|
40
65
|
} | {
|
|
41
66
|
kind: 'progress';
|
|
42
67
|
id: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/worker/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/worker/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEtE,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX;;;wDAGoD;IACpD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;2DAIuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;uEAGmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;oEACgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;CACnB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,aAAa,CAAC;CACzB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postext",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.40",
|
|
4
4
|
"description": "A programmable typesetter for the web. Layout engine that applies professional editorial rules — columns, orphan/widow prevention, resource placement, footnotes — to semantic content. Built on @chenglou/pretext for DOM-free text measurement.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"dev": "tsc --watch",
|
|
61
61
|
"check-types": "tsc --noEmit",
|
|
62
62
|
"lint": "eslint .",
|
|
63
|
-
"test": "vitest run"
|
|
63
|
+
"test": "vitest run",
|
|
64
|
+
"bench": "BENCH=1 vitest run __bench__"
|
|
64
65
|
}
|
|
65
66
|
}
|