@json-to-office/core-docx 0.27.0 → 0.29.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/dist/components/visual.d.ts +27 -0
- package/dist/components/visual.d.ts.map +1 -1
- package/dist/core/cached-render.d.ts.map +1 -1
- package/dist/core/flattenVisuals.d.ts +15 -2
- package/dist/core/flattenVisuals.d.ts.map +1 -1
- package/dist/core/generator.d.ts +6 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/prerasterizeVisuals.d.ts +44 -0
- package/dist/core/prerasterizeVisuals.d.ts.map +1 -0
- package/dist/core/render.d.ts +5 -0
- package/dist/core/render.d.ts.map +1 -1
- package/dist/index.js +334 -58
- package/dist/index.js.map +1 -1
- package/dist/plugin/createDocumentGenerator.d.ts +6 -0
- package/dist/plugin/createDocumentGenerator.d.ts.map +1 -1
- package/dist/plugin/example/index.js +286 -30
- package/dist/plugin/example/index.js.map +1 -1
- package/dist/plugin/types.d.ts +6 -0
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/generationContext.d.ts +15 -0
- package/dist/utils/generationContext.d.ts.map +1 -1
- package/dist/utils/imageUtils.d.ts.map +1 -1
- package/dist/utils/promiseLimiter.d.ts +7 -0
- package/dist/utils/promiseLimiter.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -12,6 +12,8 @@ import { ComponentDefinition, RenderContext } from '../types';
|
|
|
12
12
|
import { ThemeConfig } from '../styles';
|
|
13
13
|
import { type ImageOptions } from '../core/content';
|
|
14
14
|
import type { VisualProps } from '@json-to-office/shared-docx';
|
|
15
|
+
import { type PptxServiceConfig, type PptxRasterizeResult } from '@json-to-office/shared';
|
|
16
|
+
export declare const DEFAULT_RASTERIZE_SERVER_URL = "http://localhost:7802";
|
|
15
17
|
/**
|
|
16
18
|
* Build a single-slide pptx presentation component definition from visual props.
|
|
17
19
|
* The shape mirrors a normal `.pptx.json` document so the pptx engine renders
|
|
@@ -35,6 +37,31 @@ export declare function visualToImageOptions(props: VisualProps): ImageOptions;
|
|
|
35
37
|
* `flattenVisuals` transform to produce a portable, service-free document).
|
|
36
38
|
*/
|
|
37
39
|
export declare function visualToImageProps(props: VisualProps, base64DataUri: string): Record<string, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Identity of one visual rasterization: content + resolution + (for HTTP
|
|
42
|
+
* services) the target server. Keys the per-document pre-rasterization map
|
|
43
|
+
* (#153); the pre-pass and the render-time lookup MUST use this one function
|
|
44
|
+
* so the two sides cannot drift.
|
|
45
|
+
*/
|
|
46
|
+
export declare function visualRasterKey(presentation: unknown, dpi: number, serverUrl?: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* The serverUrl that actually differentiates a visual's rasterization. An
|
|
49
|
+
* in-process `render` callback takes precedence over any serverUrl —
|
|
50
|
+
* per-visual or config — so overrides only matter when rasterization would
|
|
51
|
+
* go over HTTP. Deliberately keyed on `render` alone (NOT `renderBatch`):
|
|
52
|
+
* per-visual fallbacks always go through `rasterizeVisualSlide`, which only
|
|
53
|
+
* consults `render`, and pre-pass inclusion must match what a fallback would
|
|
54
|
+
* actually do or the same visual could rasterize against two different
|
|
55
|
+
* services depending on cache luck.
|
|
56
|
+
*/
|
|
57
|
+
export declare function effectiveVisualServerUrl(props: VisualProps, serviceConfig: PptxServiceConfig | undefined): string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Rasterize a single-slide presentation to a PNG via the configured service.
|
|
60
|
+
* An in-process `render` callback takes precedence over an HTTP `serverUrl`.
|
|
61
|
+
* Exported for the pre-rasterization pass, whose per-visual fallback must
|
|
62
|
+
* behave exactly like render-time rasterization.
|
|
63
|
+
*/
|
|
64
|
+
export declare function rasterizeVisualSlide(presentation: Record<string, unknown>, dpi: number, propsServerUrl: string | undefined, serviceConfig: PptxServiceConfig | undefined, baseDir: string | undefined): Promise<PptxRasterizeResult>;
|
|
38
65
|
/**
|
|
39
66
|
* Render visual component
|
|
40
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../src/components/visual.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../src/components/visual.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,aAAa,EAEd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AAIpE;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBzB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAWrE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,OAAO,EACrB,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAIR;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,iBAAiB,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAGpB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA6C9B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAkDhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cached-render.d.ts","sourceRoot":"","sources":["../../src/core/cached-render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,WAAW,EAIZ,MAAM,UAAU,CAAC;AAoBlB;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CA4BlE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIzD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,EACtB,WAAW,UAAQ,GAClB,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"cached-render.d.ts","sourceRoot":"","sources":["../../src/core/cached-render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,WAAW,EAIZ,MAAM,UAAU,CAAC;AAoBlB;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CA4BlE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIzD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,EACtB,WAAW,UAAQ,GAClB,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC,CAyG5D;AAKD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC,GACD,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,kEAMrC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,GAAG,CACvD,MAAM,EACN,OAAO,CACR,GAAG,IAAI,CAAC,CAgBR;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
|
@@ -13,18 +13,31 @@
|
|
|
13
13
|
* just `children`: section `props.header`/`props.footer`, and table
|
|
14
14
|
* `props.columns[].cells[].content` / `props.columns[].header.content`.
|
|
15
15
|
*/
|
|
16
|
-
import { type PptxRasterizer } from '@json-to-office/shared';
|
|
16
|
+
import { type PptxRasterizer, type PptxBatchRasterizer } from '@json-to-office/shared';
|
|
17
17
|
export interface FlattenVisualsOptions {
|
|
18
18
|
/** Rasterizer that turns a single-slide pptx presentation into a PNG. */
|
|
19
19
|
rasterize: PptxRasterizer;
|
|
20
|
+
/**
|
|
21
|
+
* Batch rasterizer (#153). When provided, all visuals are collected and
|
|
22
|
+
* rasterized together up front; `rasterize` remains the per-visual
|
|
23
|
+
* fallback for batch failures and anything the collection missed.
|
|
24
|
+
*/
|
|
25
|
+
rasterizeBatch?: PptxBatchRasterizer;
|
|
20
26
|
/** Default DPI applied when a `visual` does not specify one (default 200). */
|
|
21
27
|
dpi?: number;
|
|
22
28
|
/** Max concurrent rasterizations (default 4). */
|
|
23
29
|
concurrency?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Directory that relative asset paths inside visuals resolve against —
|
|
32
|
+
* the document's own directory. Absent → the rasterizer's cwd (#142).
|
|
33
|
+
*/
|
|
34
|
+
baseDir?: string;
|
|
24
35
|
}
|
|
25
36
|
/**
|
|
26
37
|
* Return a deep copy of `doc` with every `visual` node replaced by the `image`
|
|
27
|
-
* node it rasterizes to.
|
|
38
|
+
* node it rasterizes to. With `rasterizeBatch`, visuals are pre-rasterized in
|
|
39
|
+
* batches and the tree walk resolves from the batch results; otherwise (and
|
|
40
|
+
* for any batch miss) visuals rasterize per-node with bounded concurrency. A
|
|
28
41
|
* `visual` with `enabled: false` is left untouched (it's filtered out at render
|
|
29
42
|
* anyway, so rasterizing it would be wasted work). Non-visual nodes are copied
|
|
30
43
|
* structurally and otherwise unchanged.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flattenVisuals.d.ts","sourceRoot":"","sources":["../../src/core/flattenVisuals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"flattenVisuals.d.ts","sourceRoot":"","sources":["../../src/core/flattenVisuals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAYhC,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,SAAS,EAAE,cAAc,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AASD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,OAAO,EAC9C,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CA0CZ"}
|
package/dist/core/generator.d.ts
CHANGED
|
@@ -41,6 +41,12 @@ export interface JsonGenerationOptions {
|
|
|
41
41
|
deterministic?: boolean;
|
|
42
42
|
/** Build timestamp for metadata; defaults to a stable epoch. */
|
|
43
43
|
generatedAt?: string | Date;
|
|
44
|
+
/**
|
|
45
|
+
* Directory that relative asset paths (image `path` props) resolve against.
|
|
46
|
+
* File entry points default it to the document's own directory; elsewhere
|
|
47
|
+
* it falls back to `process.cwd()` (#142).
|
|
48
|
+
*/
|
|
49
|
+
baseDir?: string;
|
|
44
50
|
}
|
|
45
51
|
/**
|
|
46
52
|
* Type guard to check if input is a report component definition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,yBAAyB,EAE1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAW9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE;QACX;;;;WAIG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;;WAGG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,iEAAiE;QACjE,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,OAAO,GAClB,UAAU,IAAI,yBAAyB,CAUzC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAwBnB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,mBAAmB,EAAE,EACjC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAQnB;AA8CD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,yBAAyB,EACpE,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CA0DnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,wBAAwB,CAE1B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GAAG,yBAAyB,EAC9C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,GAAG,yBAAyB,EAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CASnB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAErE;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* prerasterizeVisuals — per-document visual rasterization pre-pass (#153).
|
|
3
|
+
*
|
|
4
|
+
* The renderer walks components strictly in order, so each `visual` used to
|
|
5
|
+
* await its own rasterization round trip: one HTTP call + one LibreOffice
|
|
6
|
+
* launch per visual, ~25 of each for the bundled annual-report templates.
|
|
7
|
+
* This pass runs once per document before rendering: it collects every
|
|
8
|
+
* enabled visual, dedupes identical ones, and rasterizes them together —
|
|
9
|
+
* through an in-process batch rasterizer, a batched HTTP call, or (failing
|
|
10
|
+
* both) bounded-concurrency per-visual calls.
|
|
11
|
+
*
|
|
12
|
+
* Results land in a map keyed by `visualRasterKey`; `renderVisualComponent`
|
|
13
|
+
* consults the map first and falls back to per-visual rasterization on any
|
|
14
|
+
* miss. The pre-pass is therefore purely an accelerator: over-collection
|
|
15
|
+
* wastes a little work, under-collection and every failure mode degrade to
|
|
16
|
+
* the sequential status quo, never to a broken render.
|
|
17
|
+
*/
|
|
18
|
+
import { type PptxServiceConfig, type PptxRasterizeBatchSlideResult } from '@json-to-office/shared';
|
|
19
|
+
import type { VisualProps } from '@json-to-office/shared-docx';
|
|
20
|
+
export interface PrerasterizeOptions {
|
|
21
|
+
/** Directory relative asset paths resolve against (#142). */
|
|
22
|
+
baseDir?: string;
|
|
23
|
+
/** Max concurrent per-visual fallback rasterizations (default 4). */
|
|
24
|
+
concurrency?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Collect the props of every enabled `visual` component reachable from
|
|
28
|
+
* `root`. The walk is generic — every array element and object value is
|
|
29
|
+
* visited — so visuals nested anywhere (columns, table cells, section
|
|
30
|
+
* headers/footers, plugin containers) are found without enumerating
|
|
31
|
+
* container shapes. Disabled component subtrees are pruned: they never
|
|
32
|
+
* render, so rasterizing them is wasted work. Over-collection is harmless
|
|
33
|
+
* (an unused map entry); under-collection is harmless (render-time
|
|
34
|
+
* fallback) — which is what makes the generic walk safe.
|
|
35
|
+
*/
|
|
36
|
+
export declare function collectVisualProps(root: unknown): VisualProps[];
|
|
37
|
+
/**
|
|
38
|
+
* Batch-rasterize a document's visuals ahead of rendering. Returns a map of
|
|
39
|
+
* `visualRasterKey` → per-visual result (pixels or a recorded error). Never
|
|
40
|
+
* throws for per-visual problems; a thrown error here indicates a pre-pass
|
|
41
|
+
* bug and the caller should continue without the map.
|
|
42
|
+
*/
|
|
43
|
+
export declare function prerasterizeVisuals(root: unknown, serviceConfig: PptxServiceConfig | undefined, options?: PrerasterizeOptions): Promise<Map<string, PptxRasterizeBatchSlideResult>>;
|
|
44
|
+
//# sourceMappingURL=prerasterizeVisuals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prerasterizeVisuals.d.ts","sourceRoot":"","sources":["../../src/core/prerasterizeVisuals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EAEtB,KAAK,6BAA6B,EACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAkB/D,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AASD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,CA4B/D;AAsDD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,iBAAiB,GAAG,SAAS,EAC5C,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAmJrD"}
|
package/dist/core/render.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ interface RenderDocumentOptions {
|
|
|
13
13
|
cache?: MemoryCache;
|
|
14
14
|
bypassCache?: boolean;
|
|
15
15
|
services?: ServicesConfig;
|
|
16
|
+
/**
|
|
17
|
+
* Directory that relative asset paths (image `path` props) resolve
|
|
18
|
+
* against. Defaults to `process.cwd()` when absent (#142).
|
|
19
|
+
*/
|
|
20
|
+
baseDir?: string;
|
|
16
21
|
}
|
|
17
22
|
/**
|
|
18
23
|
* Render a complete document from structure and layout
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,KAAK,EACL,eAAe,EAEf,eAAe,EAKf,OAAO,EACR,MAAM,MAAM,CAAC;AAcd,OAAO,EACL,mBAAmB,EACnB,aAAa,EAed,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC,OAAO,EAEL,iBAAiB,EAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/core/render.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,KAAK,EACL,eAAe,EAEf,eAAe,EAKf,OAAO,EACR,MAAM,MAAM,CAAC;AAcd,OAAO,EACL,mBAAmB,EACnB,aAAa,EAed,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC,OAAO,EAEL,iBAAiB,EAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA+B7D,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8DD;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAYnB;AAkZD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,EACtB,cAAc,CAAC,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,OAAO,EACvB,WAAW,UAAQ,GAClB,OAAO,CAAC,eAAe,CAAC,CAiH1B;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC,CAmC5D"}
|