@json-to-office/jto-ops 6.2.0 → 7.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/dist/index.d.ts +261 -8
- package/dist/index.js +1002 -127
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FontRuntimeOpts, ServicesConfig, GenerationWarning, RendererStatus, PptxBatchRasterizer, PptxRasterizer, JsonBlockDefinition, BlockSlot, ResolvedFont } from '@json-to-office/shared';
|
|
2
|
-
import { QualityProfile, QualityPolicy, PreparedDocument, QualityAnalysis, QualityRulePack, QualityDiagnostic, QualityAnalyzeOptions } from '@json-to-office/quality';
|
|
2
|
+
import { QualityProfile, QualityPolicy, PreparedDocument, QualityAnalysis, QualityRulePack, QualityDiagnostic, QualityAnalyzeOptions, QualityFact } from '@json-to-office/quality';
|
|
3
3
|
|
|
4
4
|
type FormatName = 'docx' | 'pptx';
|
|
5
5
|
interface GeneratorOptions {
|
|
@@ -59,6 +59,12 @@ interface GeneratorOptions {
|
|
|
59
59
|
};
|
|
60
60
|
/** Opaque canonical prologue output shared by analysis and rendering. */
|
|
61
61
|
prepared?: PreparedDocument;
|
|
62
|
+
/**
|
|
63
|
+
* Registered code components. Quality preparation expands them the way
|
|
64
|
+
* generation does, so `analyzeQuality` and `prepareDocument` judge what a
|
|
65
|
+
* plugin emits and report it at the invocation the author wrote (#453).
|
|
66
|
+
*/
|
|
67
|
+
plugins?: readonly any[];
|
|
62
68
|
}
|
|
63
69
|
interface GeneratorResult {
|
|
64
70
|
generateBuffer: (document: any) => Promise<Buffer>;
|
|
@@ -499,6 +505,9 @@ declare const RENDERED_QUALITY_RULES: QualityRulePack;
|
|
|
499
505
|
* every occurrence. `assignInventory` resolves them by reading order: the
|
|
500
506
|
* inventory is walked in document order and the stream is in page order, so
|
|
501
507
|
* the next unclaimed occurrence at or after the previous claim is the one.
|
|
508
|
+
* Where the format knows more before rendering — a slide is its own page,
|
|
509
|
+
* and its text boxes sit where the deck put them — the entry says so, and
|
|
510
|
+
* only an occurrence on that page, preferably inside that box, is its own.
|
|
502
511
|
*/
|
|
503
512
|
|
|
504
513
|
/** Fold rendered and authored text into one comparable form. */
|
|
@@ -522,6 +531,8 @@ interface OccurrencePart {
|
|
|
522
531
|
interface TextOccurrence {
|
|
523
532
|
/** Offset into the document stream, for ordering. */
|
|
524
533
|
at: number;
|
|
534
|
+
/** Offset just past the match: `[at, end)` is the range a claim holds. */
|
|
535
|
+
end: number;
|
|
525
536
|
/** First and last page the match touches; equal unless it breaks across. */
|
|
526
537
|
pageIndex: number;
|
|
527
538
|
endPageIndex: number;
|
|
@@ -541,8 +552,15 @@ interface TextOccurrence {
|
|
|
541
552
|
* fragment of their row) and the rows stay a line apart. A block reads
|
|
542
553
|
* column by column, so a cell's lines come out together; a row of one
|
|
543
554
|
* fragment outside any block — prose — reads as it lies.
|
|
555
|
+
*
|
|
556
|
+
* Rotated text — a chart's value-axis title — has no rows or columns to
|
|
557
|
+
* take part in. It reads as one run in the order poppler gave it, after the
|
|
558
|
+
* page's upright text: inside that text it could fall between two lines of
|
|
559
|
+
* a paragraph and cut it in two, and a slide's takeaway set beside a chart
|
|
560
|
+
* then reads as clipped, or as never rendered at all. Across a document the
|
|
561
|
+
* stream sets it after every page (`indexDocument`).
|
|
544
562
|
*/
|
|
545
|
-
declare function readingOrder(words: readonly PdfTextWord[]): number[];
|
|
563
|
+
declare function readingOrder(words: readonly PdfTextWord[], lines?: readonly PdfTextLine[]): number[];
|
|
546
564
|
/** What an inventory entry needs to be matched: its text, in reading order. */
|
|
547
565
|
interface InventoryEntry {
|
|
548
566
|
path: string;
|
|
@@ -555,6 +573,26 @@ interface InventoryEntry {
|
|
|
555
573
|
* `missing`, when there is not.
|
|
556
574
|
*/
|
|
557
575
|
optional?: boolean;
|
|
576
|
+
/**
|
|
577
|
+
* The 0-based page the text is drawn on, when the format knows it before
|
|
578
|
+
* rendering: a slide is its own page. Only an occurrence starting there
|
|
579
|
+
* is the entry's — "13 pts" on slide 2 is not "+1.3 pts" on slide 8,
|
|
580
|
+
* however alike the two fold.
|
|
581
|
+
*/
|
|
582
|
+
page?: number;
|
|
583
|
+
/**
|
|
584
|
+
* Where on that page the text was laid out, in PDF points: a slide text
|
|
585
|
+
* box. Of the entry's occurrences, one inside this region is its own. A
|
|
586
|
+
* section tracker that repeats the first word of the title under it is
|
|
587
|
+
* two occurrences of one word, and reading order cannot say which box
|
|
588
|
+
* painted which; the boxes can.
|
|
589
|
+
*/
|
|
590
|
+
region?: {
|
|
591
|
+
xMin: number;
|
|
592
|
+
yMin: number;
|
|
593
|
+
xMax: number;
|
|
594
|
+
yMax: number;
|
|
595
|
+
};
|
|
558
596
|
}
|
|
559
597
|
type MappingStatus = 'mapped' | 'ambiguous' | 'missing' | 'skipped';
|
|
560
598
|
interface InventoryMatch<T extends InventoryEntry = InventoryEntry> {
|
|
@@ -588,6 +626,13 @@ interface InventoryAssignment<T extends InventoryEntry> {
|
|
|
588
626
|
* finds the second "Total". An entry with no occurrence is `missing` —
|
|
589
627
|
* fully clipped, or never set — unless it is optional, and one whose every
|
|
590
628
|
* occurrence was already claimed is `ambiguous`.
|
|
629
|
+
*
|
|
630
|
+
* A claim holds the whole range it matched, not just where it starts: a
|
|
631
|
+
* rendered word belongs to one authored string, so "Revenue" inside a title
|
|
632
|
+
* another entry already owns is not free for a tracker that says "Revenue".
|
|
633
|
+
* An entry that names its page looks only there, and one that names its
|
|
634
|
+
* region takes the occurrence lying most inside it before reading order is
|
|
635
|
+
* consulted at all.
|
|
591
636
|
*/
|
|
592
637
|
declare function assignInventory<T extends InventoryEntry>(pages: readonly PdfTextPage[], inventory: readonly T[]): InventoryAssignment<T>;
|
|
593
638
|
|
|
@@ -690,6 +735,144 @@ declare const VISIBLE_SPILL_PT = 2;
|
|
|
690
735
|
*/
|
|
691
736
|
declare function analyzeRenderedDocument(input: RenderedAnalysisInput, options?: QualityAnalyzeOptions): RenderedAnalysis;
|
|
692
737
|
|
|
738
|
+
/**
|
|
739
|
+
* The authored side of the rendered pass (#344): the text inventory and the
|
|
740
|
+
* requested font families, read off a prepared document's quality facts.
|
|
741
|
+
*
|
|
742
|
+
* `jto_preview` and the ground-truth harness both hand the pass this, so the
|
|
743
|
+
* mapping a measurement scores is the mapping the tool ships. Every pointer
|
|
744
|
+
* in it has already been through the block source maps, and lands on a slot
|
|
745
|
+
* the author can patch.
|
|
746
|
+
*/
|
|
747
|
+
|
|
748
|
+
/** The text inventory a format's facts expose, as the analysis reads it. */
|
|
749
|
+
declare function renderedInventoryFromFacts(format: FormatName, facts: readonly QualityFact[]): RenderedTextEntry[];
|
|
750
|
+
/**
|
|
751
|
+
* Families the pass should find in the PDF: every family the document's
|
|
752
|
+
* text uses (a `font-family` fact, with its pointer) plus every family the
|
|
753
|
+
* render resolved from a declared source. A theme family nothing on the page
|
|
754
|
+
* uses — the default mono face in a report without code — is never embedded
|
|
755
|
+
* and must not read as substituted.
|
|
756
|
+
*/
|
|
757
|
+
declare function requestedFontsFromFacts(format: FormatName, facts: readonly QualityFact[], resolvedFonts: readonly {
|
|
758
|
+
family: string;
|
|
759
|
+
declared: boolean;
|
|
760
|
+
}[]): RequestedFont[];
|
|
761
|
+
|
|
762
|
+
/**
|
|
763
|
+
* The matrix inventory (#343): every JSON block definition the playground
|
|
764
|
+
* templates embed, found by the same extraction MCP discovery publishes as
|
|
765
|
+
* `jto://blocks`, and for each one the conditions it is supported on — theme,
|
|
766
|
+
* canvas, font, slot edge — with a stated reason for every condition it is
|
|
767
|
+
* not. Nothing is omitted silently: a condition a definition does not get is
|
|
768
|
+
* an exclusion with a reason, and a template with no definitions is listed
|
|
769
|
+
* with none.
|
|
770
|
+
*
|
|
771
|
+
* Applicability is decided from the template, never from a list of blocks:
|
|
772
|
+
*
|
|
773
|
+
* - A template on a bundled theme is authored against theme roles and
|
|
774
|
+
* tokens, so its definitions are supported on every bundled theme of the
|
|
775
|
+
* format, in the design faces and in the fallback faces. A report's are
|
|
776
|
+
* supported on every page size its themes scale for; a deck's on the slide
|
|
777
|
+
* shape the template is drawn on, because that is where its slot budgets
|
|
778
|
+
* are measured — another shape lays out, but holds fewer words.
|
|
779
|
+
* - A template carrying its own theme object is authored against that
|
|
780
|
+
* object: absolute geometry fitted to its own faces and its own canvas. Its
|
|
781
|
+
* definitions are supported there only; a bundled theme, another canvas or
|
|
782
|
+
* a wider fallback face would be a different design, not a boundary.
|
|
783
|
+
* - A definition with no slots has one document, so `min` is `max`.
|
|
784
|
+
*
|
|
785
|
+
* The profile a template's definitions are judged under is the one the
|
|
786
|
+
* blueprint drawing on that template names; a template no blueprint uses is
|
|
787
|
+
* judged under the format's default. The module is pure: themes, blueprints
|
|
788
|
+
* and profiles are handed in, so a new theme or template gains its cases
|
|
789
|
+
* without an edit here.
|
|
790
|
+
*/
|
|
791
|
+
|
|
792
|
+
type MatrixFormat = 'docx' | 'pptx';
|
|
793
|
+
interface MatrixTemplateSource {
|
|
794
|
+
/** File name, as the gallery and `jto://blocks` name it. */
|
|
795
|
+
name: string;
|
|
796
|
+
document: unknown;
|
|
797
|
+
}
|
|
798
|
+
interface MatrixBlueprintSource {
|
|
799
|
+
id: string;
|
|
800
|
+
format: string;
|
|
801
|
+
profile: string;
|
|
802
|
+
/** The template whose definitions the blueprint invokes. */
|
|
803
|
+
definitions: string;
|
|
804
|
+
}
|
|
805
|
+
interface MatrixProfileSource {
|
|
806
|
+
id: string;
|
|
807
|
+
rules?: Readonly<Record<string, {
|
|
808
|
+
parameters?: Readonly<Record<string, unknown>>;
|
|
809
|
+
}>>;
|
|
810
|
+
}
|
|
811
|
+
interface MatrixInventoryOptions {
|
|
812
|
+
/** The bundled theme names of each format. */
|
|
813
|
+
themes: Readonly<Record<MatrixFormat, readonly string[]>>;
|
|
814
|
+
blueprints?: readonly MatrixBlueprintSource[];
|
|
815
|
+
/** Shipped profiles by id, to read the roles a profile requires present. */
|
|
816
|
+
profiles?: Readonly<Record<string, MatrixProfileSource>>;
|
|
817
|
+
}
|
|
818
|
+
interface MatrixExclusion {
|
|
819
|
+
/** `theme minimal`, `canvas standard43`, `font fallback`, `edge min`. */
|
|
820
|
+
condition: string;
|
|
821
|
+
reason: string;
|
|
822
|
+
}
|
|
823
|
+
interface MatrixConditions {
|
|
824
|
+
themes: string[];
|
|
825
|
+
canvases: MatrixCanvas[];
|
|
826
|
+
fonts: MatrixFont[];
|
|
827
|
+
edges: MatrixEdge[];
|
|
828
|
+
}
|
|
829
|
+
interface MatrixInventoryTemplate {
|
|
830
|
+
template: string;
|
|
831
|
+
format: MatrixFormat;
|
|
832
|
+
/** The bundled theme the template names, or `inline` for a theme object. */
|
|
833
|
+
theme: string;
|
|
834
|
+
/** The blueprint profile its definitions are judged under, when one uses it. */
|
|
835
|
+
profile?: string;
|
|
836
|
+
/** Slot roles that profile requires present, so `min` keeps them. */
|
|
837
|
+
requiredRoles: string[];
|
|
838
|
+
/** Every definition the template embeds, in authored order. */
|
|
839
|
+
definitions: string[];
|
|
840
|
+
/** The conditions a whole-template case is supported on. */
|
|
841
|
+
conditions: MatrixConditions;
|
|
842
|
+
exclusions: MatrixExclusion[];
|
|
843
|
+
}
|
|
844
|
+
interface MatrixInventoryEntry extends MatrixConditions {
|
|
845
|
+
/** `<template>#<definition pointer>`. */
|
|
846
|
+
id: string;
|
|
847
|
+
template: string;
|
|
848
|
+
format: MatrixFormat;
|
|
849
|
+
name: string;
|
|
850
|
+
definitionPointer: string;
|
|
851
|
+
/** Definitions this one invokes, dependencies first. */
|
|
852
|
+
dependencies: string[];
|
|
853
|
+
profile?: string;
|
|
854
|
+
requiredRoles: string[];
|
|
855
|
+
exclusions: MatrixExclusion[];
|
|
856
|
+
}
|
|
857
|
+
interface MatrixInventory {
|
|
858
|
+
templates: MatrixInventoryTemplate[];
|
|
859
|
+
entries: MatrixInventoryEntry[];
|
|
860
|
+
}
|
|
861
|
+
/** Every condition of a format, whether or not a definition gets it. */
|
|
862
|
+
declare function matrixUniverse(format: MatrixFormat, themes: readonly string[]): MatrixConditions;
|
|
863
|
+
declare function templateFormat(name: string, document: unknown): MatrixFormat | undefined;
|
|
864
|
+
/** The inventory over every template handed in, in the order given. */
|
|
865
|
+
declare function buildMatrixInventory(templates: readonly MatrixTemplateSource[], options: MatrixInventoryOptions): MatrixInventory;
|
|
866
|
+
/**
|
|
867
|
+
* Conditions of the universe an entry neither gets nor excludes, and
|
|
868
|
+
* conditions it both gets and excludes. Empty for a complete inventory.
|
|
869
|
+
*/
|
|
870
|
+
declare function inventoryGaps(entry: MatrixConditions & {
|
|
871
|
+
exclusions: readonly MatrixExclusion[];
|
|
872
|
+
}, universe: MatrixConditions): string[];
|
|
873
|
+
/** One line per template and entry, for a suite's log. */
|
|
874
|
+
declare function describeInventory(inventory: MatrixInventory): string;
|
|
875
|
+
|
|
693
876
|
/**
|
|
694
877
|
* The block boundary matrix (#343, report portion): every JSON block
|
|
695
878
|
* definition a playground template embeds, invoked at the edges of its own
|
|
@@ -715,9 +898,11 @@ declare function analyzeRenderedDocument(input: RenderedAnalysisInput, options?:
|
|
|
715
898
|
type Rec = Record<string, unknown>;
|
|
716
899
|
type MatrixEdge = 'min' | 'max';
|
|
717
900
|
type MatrixFont = 'design' | 'fallback';
|
|
718
|
-
|
|
901
|
+
/** Page sizes for reports; the two slide shapes theme scales key for decks. */
|
|
902
|
+
type MatrixCanvas = 'A4' | 'LETTER' | 'wide169' | 'standard43';
|
|
719
903
|
interface BlockMatrixDefinition {
|
|
720
904
|
name: string;
|
|
905
|
+
format: MatrixFormat;
|
|
721
906
|
/** The template the definition is embedded in, as the catalog names it. */
|
|
722
907
|
template: string;
|
|
723
908
|
/** Where inside that template: `/props/blocks/<name>`. */
|
|
@@ -756,6 +941,26 @@ interface CaseConditions {
|
|
|
756
941
|
canvas?: MatrixCanvas;
|
|
757
942
|
requiredRoles?: readonly string[];
|
|
758
943
|
}
|
|
944
|
+
/**
|
|
945
|
+
* The same faces for a deck. PPTX themes take family names and a deck has
|
|
946
|
+
* no theme overrides, so the fallback case carries an inline copy of the
|
|
947
|
+
* bundled theme with these two roles replaced.
|
|
948
|
+
*/
|
|
949
|
+
declare const PPTX_FALLBACK_FONTS: {
|
|
950
|
+
readonly heading: "DejaVu Sans";
|
|
951
|
+
readonly body: "DejaVu Sans";
|
|
952
|
+
};
|
|
953
|
+
/** 16:9 and 4:3 at the sizes the house deck and PowerPoint use. */
|
|
954
|
+
declare const PPTX_CANVAS_SIZE: {
|
|
955
|
+
readonly wide169: {
|
|
956
|
+
readonly slideWidth: 13.333;
|
|
957
|
+
readonly slideHeight: 7.5;
|
|
958
|
+
};
|
|
959
|
+
readonly standard43: {
|
|
960
|
+
readonly slideWidth: 10;
|
|
961
|
+
readonly slideHeight: 7.5;
|
|
962
|
+
};
|
|
963
|
+
};
|
|
759
964
|
/**
|
|
760
965
|
* The face every LibreOffice ships with, bundled inside the application on
|
|
761
966
|
* each platform: what a design font degrades to when the host lacks it, and
|
|
@@ -780,7 +985,7 @@ declare const MATRIX_IMAGE = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQA
|
|
|
780
985
|
*/
|
|
781
986
|
declare function widestNumber(length: number, seed?: number): string;
|
|
782
987
|
/** A slot's value at an edge; `undefined` means "leave it out". */
|
|
783
|
-
declare function boundarySlotValue(slot: BlockSlot, name: string, edge: MatrixEdge, seed?: number): unknown;
|
|
988
|
+
declare function boundarySlotValue(slot: BlockSlot, name: string, edge: MatrixEdge, seed?: number, format?: MatrixFormat): unknown;
|
|
784
989
|
/**
|
|
785
990
|
* One invocation of a definition with every slot at the edge: optional slots
|
|
786
991
|
* left out at `min` (so defaults are what renders), every slot at `max`.
|
|
@@ -788,18 +993,23 @@ declare function boundarySlotValue(slot: BlockSlot, name: string, edge: MatrixEd
|
|
|
788
993
|
* is never optional to that profile, so `requiredRoles` keeps it at `min`.
|
|
789
994
|
* Columns whose cells must count the rows do; nothing else knows a block.
|
|
790
995
|
*/
|
|
791
|
-
declare function boundaryInvocation(name: string, definition: JsonBlockDefinition, edge: MatrixEdge, seed?: number, requiredRoles?: readonly string[]): Rec;
|
|
996
|
+
declare function boundaryInvocation(name: string, definition: JsonBlockDefinition, edge: MatrixEdge, seed?: number, requiredRoles?: readonly string[], format?: MatrixFormat): Rec;
|
|
792
997
|
/**
|
|
793
998
|
* The same invocation one past the edge: the first budgeted string a word
|
|
794
999
|
* over, or the first bounded array an item over. What a slot violation
|
|
795
1000
|
* looks like, so a suite can prove it is reported at the authored pointer.
|
|
796
1001
|
*/
|
|
797
|
-
declare function overBudgetInvocation(name: string, definition: JsonBlockDefinition, seed?: number): {
|
|
1002
|
+
declare function overBudgetInvocation(name: string, definition: JsonBlockDefinition, seed?: number, format?: MatrixFormat): {
|
|
798
1003
|
invocation: Rec;
|
|
799
1004
|
slot: string;
|
|
800
1005
|
kind: 'words' | 'items';
|
|
801
1006
|
} | undefined;
|
|
802
|
-
/**
|
|
1007
|
+
/**
|
|
1008
|
+
* Every definition a template embeds, with the template's own example of it.
|
|
1009
|
+
* The definitions come from the extraction MCP discovery publishes, so the
|
|
1010
|
+
* matrix covers exactly what an agent can copy; a template whose definitions
|
|
1011
|
+
* do not validate is an error here, not a template with fewer blocks.
|
|
1012
|
+
*/
|
|
803
1013
|
declare function enumerateBlockDefinitions(template: unknown, templateName: string): BlockMatrixDefinition[];
|
|
804
1014
|
/**
|
|
805
1015
|
* A small report with one block at its edge: the chrome at the template's
|
|
@@ -811,6 +1021,49 @@ declare function blockCaseDocument(entries: readonly BlockMatrixDefinition[], na
|
|
|
811
1021
|
declare function reportCaseDocument(template: unknown, edge: MatrixEdge, theme: string, { font, canvas, requiredRoles }?: CaseConditions): Rec;
|
|
812
1022
|
/** Every case the options span, in a stable order. */
|
|
813
1023
|
declare function generateBlockMatrix(template: unknown, templateName: string, options: BlockMatrixOptions): BlockMatrixCase[];
|
|
1024
|
+
interface DeckCaseConditions extends CaseConditions {
|
|
1025
|
+
/**
|
|
1026
|
+
* A bundled theme's object, for the fallback-font case: a deck has no
|
|
1027
|
+
* theme overrides, so the faces go into an inline copy of the theme.
|
|
1028
|
+
*/
|
|
1029
|
+
themeObject?: (name: string) => Rec | undefined;
|
|
1030
|
+
}
|
|
1031
|
+
/**
|
|
1032
|
+
* A deck with one block at its edge: the template's cover at its nominal
|
|
1033
|
+
* values first, when the template has one and it is not the block under
|
|
1034
|
+
* test, so the slide under test is where footer rules start counting.
|
|
1035
|
+
*/
|
|
1036
|
+
declare function deckBlockCaseDocument(template: unknown, entries: readonly BlockMatrixDefinition[], name: string, edge: MatrixEdge, theme: string, { font, canvas, requiredRoles, themeObject, }?: DeckCaseConditions): Rec;
|
|
1037
|
+
/** The whole deck with every invocation at the edge. */
|
|
1038
|
+
declare function deckReportCaseDocument(template: unknown, edge: MatrixEdge, theme: string, { font, canvas, requiredRoles, themeObject, }?: DeckCaseConditions): Rec;
|
|
1039
|
+
interface MatrixCase extends BlockMatrixCase {
|
|
1040
|
+
format: MatrixFormat;
|
|
1041
|
+
template: string;
|
|
1042
|
+
/** The profile the template's blueprint judges it under, when one does. */
|
|
1043
|
+
profile?: string;
|
|
1044
|
+
}
|
|
1045
|
+
/** Which of the inventory's supported conditions a run takes. */
|
|
1046
|
+
interface MatrixSelection {
|
|
1047
|
+
templates?: readonly string[];
|
|
1048
|
+
themes?: readonly string[];
|
|
1049
|
+
fonts?: readonly MatrixFont[];
|
|
1050
|
+
edges?: readonly MatrixEdge[];
|
|
1051
|
+
canvases?: readonly MatrixCanvas[];
|
|
1052
|
+
/** Whether the per-definition cases are generated. Default true. */
|
|
1053
|
+
blocks?: boolean;
|
|
1054
|
+
/** Whether the whole-template cases are generated. Default true. */
|
|
1055
|
+
report?: boolean;
|
|
1056
|
+
}
|
|
1057
|
+
/**
|
|
1058
|
+
* Every case the inventory supports under a selection, in a stable order:
|
|
1059
|
+
* template, theme, font, canvas, edge, then each definition before the
|
|
1060
|
+
* whole template. A template whose definitions all lack slots has no
|
|
1061
|
+
* whole-template case: at either edge it is the template itself, which is
|
|
1062
|
+
* gallery coverage.
|
|
1063
|
+
*/
|
|
1064
|
+
declare function generateMatrixCases(inventory: MatrixInventory, templates: readonly MatrixTemplateSource[], selection?: MatrixSelection, { themeObject }?: {
|
|
1065
|
+
themeObject?: (name: string) => Rec | undefined;
|
|
1066
|
+
}): MatrixCase[];
|
|
814
1067
|
|
|
815
1068
|
/**
|
|
816
1069
|
* Make resolved fonts visible to the LibreOffice child process for the
|
|
@@ -1003,4 +1256,4 @@ declare function emitDiagnostic(text: string, tone?: DiagnosticTone): void;
|
|
|
1003
1256
|
*/
|
|
1004
1257
|
declare const stderrDiagnosticSink: DiagnosticSink;
|
|
1005
1258
|
|
|
1006
|
-
export { type BlockMatrixCase, type BlockMatrixDefinition, type BlockMatrixOptions, type CaseConditions, type DiagnosticSink, type DiagnosticTone, DocxFormatAdapter, type ExtractPdfPageInkOptions, FALLBACK_FONTS, type FontStageHandle, type FontStageOptions, type FontStager, FontconfigStager, type FormatAdapter, type FormatName, type GeneratorOptions, type GeneratorResult, INK_DPI, INK_THRESHOLD, type InventoryEntry, type InventoryMatch, MATRIX_IMAGE, MacOSCoreTextStager, type MappingStatus, type MatrixCanvas, type MatrixEdge, type MatrixFont, NoopFontStager, type PdfFontInfo, type PdfPageInk, type PdfTextLine, type PdfTextPage, type PdfTextWord, type Pgm, PptxFormatAdapter, RENDERED_QUALITY_RULES, type RasterizerCacheStats, type RenderedAnalysis, type RenderedAnalysisInput, type RenderedAnalysisSummary, type RenderedMapping, type RenderedRuleId, type RenderedTextEntry, type RequestedFont, type TextOccurrence, VISIBLE_SPILL_PT, WindowsFontStager, analyzeRenderedDocument, assignInventory, authoredTextForMatch, blockCaseDocument, boundaryInvocation, boundarySlotValue, clearRasterizerCache, createAdapter, createLibreOfficePptxBatchRasterizer, createLibreOfficePptxRasterizer, emitDiagnostic, enumerateBlockDefinitions, extractPdfFonts, extractPdfPageInk, extractPdfTextGeometry, familyRendered, generateBlockMatrix, getFontStager, getRasterizerCacheStats, inkedRows, normalizeForMatch, overBudgetInvocation, pageInkFromPgm, parsePdfFonts, parsePdfTextBbox, parsePgm, pdffontsAvailable, pdftotextAvailable, readingOrder, reportCaseDocument, runWithDiagnosticSink, stderrDiagnosticSink, widestNumber };
|
|
1259
|
+
export { type BlockMatrixCase, type BlockMatrixDefinition, type BlockMatrixOptions, type CaseConditions, type DeckCaseConditions, type DiagnosticSink, type DiagnosticTone, DocxFormatAdapter, type ExtractPdfPageInkOptions, FALLBACK_FONTS, type FontStageHandle, type FontStageOptions, type FontStager, FontconfigStager, type FormatAdapter, type FormatName, type GeneratorOptions, type GeneratorResult, INK_DPI, INK_THRESHOLD, type InventoryEntry, type InventoryMatch, MATRIX_IMAGE, MacOSCoreTextStager, type MappingStatus, type MatrixBlueprintSource, type MatrixCanvas, type MatrixCase, type MatrixConditions, type MatrixEdge, type MatrixExclusion, type MatrixFont, type MatrixFormat, type MatrixInventory, type MatrixInventoryEntry, type MatrixInventoryOptions, type MatrixInventoryTemplate, type MatrixProfileSource, type MatrixSelection, type MatrixTemplateSource, NoopFontStager, PPTX_CANVAS_SIZE, PPTX_FALLBACK_FONTS, type PdfFontInfo, type PdfPageInk, type PdfTextLine, type PdfTextPage, type PdfTextWord, type Pgm, PptxFormatAdapter, RENDERED_QUALITY_RULES, type RasterizerCacheStats, type RenderedAnalysis, type RenderedAnalysisInput, type RenderedAnalysisSummary, type RenderedMapping, type RenderedRuleId, type RenderedTextEntry, type RequestedFont, type TextOccurrence, VISIBLE_SPILL_PT, WindowsFontStager, analyzeRenderedDocument, assignInventory, authoredTextForMatch, blockCaseDocument, boundaryInvocation, boundarySlotValue, buildMatrixInventory, clearRasterizerCache, createAdapter, createLibreOfficePptxBatchRasterizer, createLibreOfficePptxRasterizer, deckBlockCaseDocument, deckReportCaseDocument, describeInventory, emitDiagnostic, enumerateBlockDefinitions, extractPdfFonts, extractPdfPageInk, extractPdfTextGeometry, familyRendered, generateBlockMatrix, generateMatrixCases, getFontStager, getRasterizerCacheStats, inkedRows, inventoryGaps, matrixUniverse, normalizeForMatch, overBudgetInvocation, pageInkFromPgm, parsePdfFonts, parsePdfTextBbox, parsePgm, pdffontsAvailable, pdftotextAvailable, readingOrder, renderedInventoryFromFacts, reportCaseDocument, requestedFontsFromFacts, runWithDiagnosticSink, stderrDiagnosticSink, templateFormat, widestNumber };
|