@json-to-office/core-docx 0.26.1 → 0.28.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.map +1 -1
- package/dist/core/cached-render.d.ts.map +1 -1
- package/dist/core/flattenVisuals.d.ts +5 -0
- package/dist/core/flattenVisuals.d.ts.map +1 -1
- package/dist/core/generationContext.d.ts +6 -3
- package/dist/core/generationContext.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/render.d.ts +5 -0
- package/dist/core/render.d.ts.map +1 -1
- package/dist/index.js +85 -36
- 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 +66 -29
- 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/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/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../src/components/visual.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,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;
|
|
1
|
+
{"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../src/components/visual.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,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;AAY/D;;;;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;AA2DD;;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,CA+BhC"}
|
|
@@ -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"}
|
|
@@ -21,6 +21,11 @@ export interface FlattenVisualsOptions {
|
|
|
21
21
|
dpi?: number;
|
|
22
22
|
/** Max concurrent rasterizations (default 4). */
|
|
23
23
|
concurrency?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Directory that relative asset paths inside visuals resolve against —
|
|
26
|
+
* the document's own directory. Absent → the rasterizer's cwd (#142).
|
|
27
|
+
*/
|
|
28
|
+
baseDir?: string;
|
|
24
29
|
}
|
|
25
30
|
/**
|
|
26
31
|
* Return a deep copy of `doc` with every `visual` node replaced by the `image`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flattenVisuals.d.ts","sourceRoot":"","sources":["../../src/core/flattenVisuals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAShC,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,SAAS,EAAE,cAAc,CAAC;IAC1B,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"flattenVisuals.d.ts","sourceRoot":"","sources":["../../src/core/flattenVisuals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAShC,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,SAAS,EAAE,cAAc,CAAC;IAC1B,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6BD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,OAAO,EAC9C,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAUZ"}
|
|
@@ -23,10 +23,13 @@ export interface ThemeContextOptions {
|
|
|
23
23
|
warnings?: GenerationWarning[];
|
|
24
24
|
/**
|
|
25
25
|
* Theme lookup for the base `props.theme` name. The plugin builder passes
|
|
26
|
-
* its own (customThemes →
|
|
27
|
-
* use customThemes → built-in.
|
|
26
|
+
* its own (customThemes → doc-named built-in → constructor-supplied theme →
|
|
27
|
+
* built-in); omit it to use customThemes → built-in. `authored` is true when
|
|
28
|
+
* the name came from the document's own `props.theme` (not the 'minimal'
|
|
29
|
+
* fallback), so the lookup can honor an explicitly doc-named built-in
|
|
30
|
+
* without the constructor theme being shadowed for unnamed docs (#141).
|
|
28
31
|
*/
|
|
29
|
-
resolveNamedTheme?: (name: string, warnings
|
|
32
|
+
resolveNamedTheme?: (name: string, warnings: GenerationWarning[] | undefined, authored: boolean) => ThemeConfig;
|
|
30
33
|
}
|
|
31
34
|
export interface GenerationThemeContext {
|
|
32
35
|
/** The document after the export-mode pre-pass rewrote font references. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generationContext.d.ts","sourceRoot":"","sources":["../../src/core/generationContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAKhC,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B
|
|
1
|
+
{"version":3,"file":"generationContext.d.ts","sourceRoot":"","sources":["../../src/core/generationContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAKhC,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,EAAE,GAAG,SAAS,EACzC,QAAQ,EAAE,OAAO,KACd,WAAW,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,QAAQ,EAAE,yBAAyB,CAAC;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;CACnB;AAoBD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,yBAAyB,EACrC,OAAO,GAAE,mBAAwB,GAChC,sBAAsB,CAkExB"}
|
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":"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"}
|
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;AA6B7D,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;AA6XD;;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"}
|
package/dist/index.js
CHANGED
|
@@ -1924,6 +1924,7 @@ var init_docxImagePositioning = __esm({
|
|
|
1924
1924
|
|
|
1925
1925
|
// src/core/generator.ts
|
|
1926
1926
|
import { writeFileSync } from "fs";
|
|
1927
|
+
import { dirname, resolve as resolve3 } from "path";
|
|
1927
1928
|
|
|
1928
1929
|
// src/types/index.ts
|
|
1929
1930
|
import {
|
|
@@ -2008,8 +2009,13 @@ function resolveThemeContext(documentIn, options = {}) {
|
|
|
2008
2009
|
);
|
|
2009
2010
|
}
|
|
2010
2011
|
const document = documentIn.props === void 0 ? { ...documentIn, props: {} } : documentIn;
|
|
2011
|
-
const
|
|
2012
|
-
|
|
2012
|
+
const authoredThemeName = document.props.theme || void 0;
|
|
2013
|
+
const baseThemeName = authoredThemeName ?? "minimal";
|
|
2014
|
+
let theme = resolveNamedTheme ? resolveNamedTheme(
|
|
2015
|
+
baseThemeName,
|
|
2016
|
+
warnings,
|
|
2017
|
+
authoredThemeName !== void 0
|
|
2018
|
+
) : defaultNamedThemeLookup(baseThemeName, customThemes, warnings);
|
|
2013
2019
|
const themeOverrides = document.props.themeOverrides;
|
|
2014
2020
|
let themeName = baseThemeName;
|
|
2015
2021
|
if (themeOverrides) {
|
|
@@ -2693,9 +2699,34 @@ import {
|
|
|
2693
2699
|
} from "docx";
|
|
2694
2700
|
|
|
2695
2701
|
// src/utils/imageUtils.ts
|
|
2696
|
-
init_widthUtils();
|
|
2697
2702
|
import { readFileSync } from "fs";
|
|
2698
2703
|
import probe from "probe-image-size";
|
|
2704
|
+
|
|
2705
|
+
// src/utils/generationContext.ts
|
|
2706
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
2707
|
+
import { isAbsolute, resolve } from "path";
|
|
2708
|
+
var generationDateStorage = new AsyncLocalStorage();
|
|
2709
|
+
function runWithGenerationDate(date, callback) {
|
|
2710
|
+
return generationDateStorage.run(date, callback);
|
|
2711
|
+
}
|
|
2712
|
+
function getGenerationDate() {
|
|
2713
|
+
return generationDateStorage.getStore() ?? /* @__PURE__ */ new Date();
|
|
2714
|
+
}
|
|
2715
|
+
var baseDirStorage = new AsyncLocalStorage();
|
|
2716
|
+
function runWithBaseDir(baseDir, callback) {
|
|
2717
|
+
return baseDir === void 0 ? callback() : baseDirStorage.run(resolve(baseDir), callback);
|
|
2718
|
+
}
|
|
2719
|
+
function getBaseDir() {
|
|
2720
|
+
return baseDirStorage.getStore();
|
|
2721
|
+
}
|
|
2722
|
+
function resolveFromBaseDir(filePath) {
|
|
2723
|
+
const base = baseDirStorage.getStore();
|
|
2724
|
+
if (!base || isAbsolute(filePath)) return filePath;
|
|
2725
|
+
return resolve(base, filePath);
|
|
2726
|
+
}
|
|
2727
|
+
|
|
2728
|
+
// src/utils/imageUtils.ts
|
|
2729
|
+
init_widthUtils();
|
|
2699
2730
|
import { ImageRun } from "docx";
|
|
2700
2731
|
function parseWidthValue(width, availableWidthPx) {
|
|
2701
2732
|
if (typeof width === "number") {
|
|
@@ -2871,7 +2902,7 @@ async function getImageBuffer(imagePath) {
|
|
|
2871
2902
|
if (isValidUrl(imagePath)) {
|
|
2872
2903
|
return await downloadImageFromUrl(imagePath);
|
|
2873
2904
|
}
|
|
2874
|
-
return { buffer: readFileSync(imagePath) };
|
|
2905
|
+
return { buffer: readFileSync(resolveFromBaseDir(imagePath)) };
|
|
2875
2906
|
}
|
|
2876
2907
|
async function getImageDimensions(imagePath) {
|
|
2877
2908
|
try {
|
|
@@ -3943,16 +3974,6 @@ function parseTextWithHyperlinks(text, baseStyle = {}, options = {}) {
|
|
|
3943
3974
|
return runs;
|
|
3944
3975
|
}
|
|
3945
3976
|
|
|
3946
|
-
// src/utils/generationContext.ts
|
|
3947
|
-
import { AsyncLocalStorage } from "async_hooks";
|
|
3948
|
-
var generationDateStorage = new AsyncLocalStorage();
|
|
3949
|
-
function runWithGenerationDate(date, callback) {
|
|
3950
|
-
return generationDateStorage.run(date, callback);
|
|
3951
|
-
}
|
|
3952
|
-
function getGenerationDate() {
|
|
3953
|
-
return generationDateStorage.getStore() ?? /* @__PURE__ */ new Date();
|
|
3954
|
-
}
|
|
3955
|
-
|
|
3956
3977
|
// src/utils/placeholderProcessor.ts
|
|
3957
3978
|
function styledPlaceholderText(text, context) {
|
|
3958
3979
|
return new TextRun2({
|
|
@@ -4307,8 +4328,9 @@ async function renderComponentWithCache(component, theme, themeName, context, by
|
|
|
4307
4328
|
const themeHash = createThemeHash(theme);
|
|
4308
4329
|
const contextKey = context?.section ? `${context.section.currentLayout}:${context.section.columnCount}` : "no-section";
|
|
4309
4330
|
const generationDateKey = getGenerationDate().toISOString();
|
|
4331
|
+
const baseDirKey = getBaseDir() ?? "";
|
|
4310
4332
|
const childrenKey = "children" in component && component.children ? `:children:${JSON.stringify(component.children)}` : "";
|
|
4311
|
-
const cacheKey = `component:${component.name}:${themeHash}:${contextKey}:${generationDateKey}:${componentProps}${childrenKey}`;
|
|
4333
|
+
const cacheKey = `component:${component.name}:${themeHash}:${contextKey}:${generationDateKey}:${baseDirKey}:${componentProps}${childrenKey}`;
|
|
4312
4334
|
const cached = await componentCache.get(cacheKey);
|
|
4313
4335
|
if (cached) {
|
|
4314
4336
|
return cached.result;
|
|
@@ -7040,14 +7062,14 @@ function visualToImageProps(props, base64DataUri) {
|
|
|
7040
7062
|
...props.alt !== void 0 && { alt: props.alt }
|
|
7041
7063
|
};
|
|
7042
7064
|
}
|
|
7043
|
-
async function rasterize(presentation, dpi, propsServerUrl, serviceConfig) {
|
|
7065
|
+
async function rasterize(presentation, dpi, propsServerUrl, serviceConfig, baseDir) {
|
|
7044
7066
|
if (!isNodeEnvironment()) {
|
|
7045
7067
|
throw new Error(
|
|
7046
7068
|
"Visual rasterization requires a Node.js environment. It is not available in browser environments."
|
|
7047
7069
|
);
|
|
7048
7070
|
}
|
|
7049
7071
|
if (serviceConfig?.render) {
|
|
7050
|
-
return serviceConfig.render({ presentation, dpi });
|
|
7072
|
+
return serviceConfig.render({ presentation, dpi, baseDir });
|
|
7051
7073
|
}
|
|
7052
7074
|
const serverUrl = resolveServiceUrl(
|
|
7053
7075
|
propsServerUrl,
|
|
@@ -7057,7 +7079,7 @@ async function rasterize(presentation, dpi, propsServerUrl, serviceConfig) {
|
|
|
7057
7079
|
const response = await postJsonToService({
|
|
7058
7080
|
url: serverUrl,
|
|
7059
7081
|
path: "/rasterize",
|
|
7060
|
-
body: { presentation, dpi },
|
|
7082
|
+
body: { presentation, dpi, ...baseDir !== void 0 && { baseDir } },
|
|
7061
7083
|
headers: serviceConfig?.headers,
|
|
7062
7084
|
serviceLabel: "PPTX rasterization service",
|
|
7063
7085
|
onUnreachable: (url, cause) => `PPTX rasterization service is not reachable at ${url}. Configure services.pptx with a \`render\` callback or a running \`serverUrl\`.
|
|
@@ -7090,7 +7112,8 @@ async function renderVisualComponent(component, theme, themeName, context) {
|
|
|
7090
7112
|
presentation,
|
|
7091
7113
|
dpi,
|
|
7092
7114
|
props.serverUrl,
|
|
7093
|
-
serviceConfig
|
|
7115
|
+
serviceConfig,
|
|
7116
|
+
getBaseDir()
|
|
7094
7117
|
);
|
|
7095
7118
|
return await createImage(
|
|
7096
7119
|
result.base64DataUri,
|
|
@@ -7184,10 +7207,13 @@ function coreProperties(metadata) {
|
|
|
7184
7207
|
async function renderDocument(structure, layout, options) {
|
|
7185
7208
|
return runWithGenerationDate(
|
|
7186
7209
|
structure.metadata.date,
|
|
7187
|
-
() =>
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7210
|
+
() => runWithBaseDir(
|
|
7211
|
+
options?.baseDir,
|
|
7212
|
+
() => globalBookmarkRegistry.runScoped(
|
|
7213
|
+
() => globalRevisionIdRegistry.runScoped(
|
|
7214
|
+
() => globalNumberingRegistry.runScoped(
|
|
7215
|
+
() => renderDocumentScoped(structure, layout, options)
|
|
7216
|
+
)
|
|
7191
7217
|
)
|
|
7192
7218
|
)
|
|
7193
7219
|
)
|
|
@@ -7782,10 +7808,10 @@ function normalizeDocument(document) {
|
|
|
7782
7808
|
|
|
7783
7809
|
// src/json/filesystem.ts
|
|
7784
7810
|
import { promises as fs3 } from "fs";
|
|
7785
|
-
import { join, resolve, isAbsolute } from "path";
|
|
7811
|
+
import { join, resolve as resolve2, isAbsolute as isAbsolute2 } from "path";
|
|
7786
7812
|
async function loadJsonDefinition(filePath) {
|
|
7787
7813
|
try {
|
|
7788
|
-
const absolutePath =
|
|
7814
|
+
const absolutePath = isAbsolute2(filePath) ? filePath : resolve2(filePath);
|
|
7789
7815
|
await fs3.access(absolutePath);
|
|
7790
7816
|
const fileContent = await fs3.readFile(absolutePath, "utf-8");
|
|
7791
7817
|
return parseJsonWithLineNumbers(fileContent);
|
|
@@ -7860,7 +7886,8 @@ async function generateDocument(document, options) {
|
|
|
7860
7886
|
options?.services,
|
|
7861
7887
|
options?.fonts,
|
|
7862
7888
|
options?.warnings,
|
|
7863
|
-
resolveGenerationDate(options)
|
|
7889
|
+
resolveGenerationDate(options),
|
|
7890
|
+
options?.baseDir
|
|
7864
7891
|
);
|
|
7865
7892
|
}
|
|
7866
7893
|
async function generateFromConfig(props, components, options) {
|
|
@@ -7871,7 +7898,7 @@ async function generateFromConfig(props, components, options) {
|
|
|
7871
7898
|
};
|
|
7872
7899
|
return await generateDocument(reportComponent, options);
|
|
7873
7900
|
}
|
|
7874
|
-
async function generateDocumentWithCustomThemes(documentIn, customThemes, services, fonts, warnings, generationDate) {
|
|
7901
|
+
async function generateDocumentWithCustomThemes(documentIn, customThemes, services, fonts, warnings, generationDate, baseDir) {
|
|
7875
7902
|
const { document, theme, themeName } = resolveThemeContext(documentIn, {
|
|
7876
7903
|
customThemes,
|
|
7877
7904
|
fonts,
|
|
@@ -7887,7 +7914,8 @@ async function generateDocumentWithCustomThemes(documentIn, customThemes, servic
|
|
|
7887
7914
|
const layout = applyLayout(structure.sections, theme, themeName);
|
|
7888
7915
|
const renderedDocument = await renderDocument(structure, layout, {
|
|
7889
7916
|
bypassCache: false,
|
|
7890
|
-
services
|
|
7917
|
+
services,
|
|
7918
|
+
baseDir
|
|
7891
7919
|
});
|
|
7892
7920
|
return renderedDocument;
|
|
7893
7921
|
}
|
|
@@ -7932,7 +7960,8 @@ async function generateDocumentFromJson(jsonConfig, options) {
|
|
|
7932
7960
|
options?.services,
|
|
7933
7961
|
options?.fonts,
|
|
7934
7962
|
options?.warnings,
|
|
7935
|
-
resolveGenerationDate(options)
|
|
7963
|
+
resolveGenerationDate(options),
|
|
7964
|
+
options?.baseDir
|
|
7936
7965
|
);
|
|
7937
7966
|
}
|
|
7938
7967
|
function validateJsonSchema(jsonConfig) {
|
|
@@ -7948,7 +7977,10 @@ async function generateAndSaveFromJson(jsonConfig, filename, options) {
|
|
|
7948
7977
|
}
|
|
7949
7978
|
async function generateDocumentFromFile(filePath, options) {
|
|
7950
7979
|
const jsonDefinition = await loadJsonDefinition(filePath);
|
|
7951
|
-
return await generateDocumentFromJson(jsonDefinition,
|
|
7980
|
+
return await generateDocumentFromJson(jsonDefinition, {
|
|
7981
|
+
baseDir: dirname(resolve3(filePath)),
|
|
7982
|
+
...options
|
|
7983
|
+
});
|
|
7952
7984
|
}
|
|
7953
7985
|
async function generateBufferFromFile(filePath, options) {
|
|
7954
7986
|
const document = await generateDocumentFromFile(filePath, options);
|
|
@@ -7996,7 +8028,7 @@ function createLimiter(max) {
|
|
|
7996
8028
|
};
|
|
7997
8029
|
return async function limit(fn) {
|
|
7998
8030
|
if (active >= max)
|
|
7999
|
-
await new Promise((
|
|
8031
|
+
await new Promise((resolve4) => queue.push(resolve4));
|
|
8000
8032
|
active++;
|
|
8001
8033
|
try {
|
|
8002
8034
|
return await fn();
|
|
@@ -8009,6 +8041,7 @@ async function flattenVisuals(doc, options) {
|
|
|
8009
8041
|
const ctx = {
|
|
8010
8042
|
rasterize: options.rasterize,
|
|
8011
8043
|
dpi: options.dpi,
|
|
8044
|
+
baseDir: options.baseDir,
|
|
8012
8045
|
limit: createLimiter(
|
|
8013
8046
|
Math.max(1, options.concurrency ?? DEFAULT_CONCURRENCY)
|
|
8014
8047
|
)
|
|
@@ -8019,7 +8052,11 @@ async function rasterizeVisual(obj, ctx) {
|
|
|
8019
8052
|
const props = obj.props;
|
|
8020
8053
|
const dpi = clampVisualDpi2(props.dpi ?? ctx.dpi ?? DEFAULT_VISUAL_DPI2);
|
|
8021
8054
|
const result = await ctx.limit(
|
|
8022
|
-
() => ctx.rasterize({
|
|
8055
|
+
() => ctx.rasterize({
|
|
8056
|
+
presentation: buildVisualPresentation(props),
|
|
8057
|
+
dpi,
|
|
8058
|
+
baseDir: ctx.baseDir
|
|
8059
|
+
})
|
|
8023
8060
|
);
|
|
8024
8061
|
const image = {
|
|
8025
8062
|
name: "image",
|
|
@@ -8292,6 +8329,9 @@ async function runExample(example, options = {}) {
|
|
|
8292
8329
|
}
|
|
8293
8330
|
}
|
|
8294
8331
|
|
|
8332
|
+
// src/plugin/createDocumentGenerator.ts
|
|
8333
|
+
init_themes();
|
|
8334
|
+
|
|
8295
8335
|
// src/plugin/version-resolver.ts
|
|
8296
8336
|
import { resolveComponentVersion } from "@json-to-office/shared/plugin";
|
|
8297
8337
|
|
|
@@ -8534,7 +8574,7 @@ function mergeSchemas(customComponents, standardSchemas) {
|
|
|
8534
8574
|
// src/plugin/createDocumentGenerator.ts
|
|
8535
8575
|
function createBuilderImpl(state) {
|
|
8536
8576
|
const componentMap = new Map(state.components.map((c) => [c.name, c]));
|
|
8537
|
-
function resolveDocumentTheme(themeName, warnings) {
|
|
8577
|
+
function resolveDocumentTheme(themeName, warnings, authored) {
|
|
8538
8578
|
if (state.customThemes) {
|
|
8539
8579
|
if (state.customThemes[themeName]) {
|
|
8540
8580
|
return state.customThemes[themeName];
|
|
@@ -8546,6 +8586,12 @@ function createBuilderImpl(state) {
|
|
|
8546
8586
|
return state.customThemes[key];
|
|
8547
8587
|
}
|
|
8548
8588
|
}
|
|
8589
|
+
if (authored && hasTheme(themeName)) {
|
|
8590
|
+
return resolveBuiltInTheme(themeName, {
|
|
8591
|
+
customThemes: state.customThemes,
|
|
8592
|
+
warnings
|
|
8593
|
+
});
|
|
8594
|
+
}
|
|
8549
8595
|
if (state.theme) {
|
|
8550
8596
|
return state.theme;
|
|
8551
8597
|
}
|
|
@@ -8692,7 +8738,8 @@ function createBuilderImpl(state) {
|
|
|
8692
8738
|
fonts: state.fonts,
|
|
8693
8739
|
validation: state.validation,
|
|
8694
8740
|
deterministic: state.deterministic,
|
|
8695
|
-
generatedAt: state.generatedAt
|
|
8741
|
+
generatedAt: state.generatedAt,
|
|
8742
|
+
baseDir: state.baseDir
|
|
8696
8743
|
};
|
|
8697
8744
|
return createBuilderImpl(
|
|
8698
8745
|
newState
|
|
@@ -8791,7 +8838,8 @@ function createBuilderImpl(state) {
|
|
|
8791
8838
|
const layout = applyLayout(structure.sections, modedTheme, themeName);
|
|
8792
8839
|
const generatedDocument = await renderDocument(structure, layout, {
|
|
8793
8840
|
services: state.services,
|
|
8794
|
-
bypassCache: !state.enableCache
|
|
8841
|
+
bypassCache: !state.enableCache,
|
|
8842
|
+
baseDir: options?.baseDir ?? state.baseDir
|
|
8795
8843
|
});
|
|
8796
8844
|
const preservedDefinition = preserveSet ? {
|
|
8797
8845
|
...modedRoot,
|
|
@@ -8921,7 +8969,8 @@ function createDocumentGenerator(options) {
|
|
|
8921
8969
|
fonts: options.fonts,
|
|
8922
8970
|
validation: options.validation,
|
|
8923
8971
|
deterministic: options.deterministic ?? true,
|
|
8924
|
-
generatedAt: options.generatedAt
|
|
8972
|
+
generatedAt: options.generatedAt,
|
|
8973
|
+
baseDir: options.baseDir
|
|
8925
8974
|
};
|
|
8926
8975
|
return createBuilderImpl(initialState);
|
|
8927
8976
|
}
|