@ironsoftware/ironpdf 2026.4.1 → 2026.6.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.
Files changed (141) hide show
  1. package/package.json +3 -3
  2. package/src/index.d.ts +3 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +3 -0
  5. package/src/index.js.map +1 -1
  6. package/src/index.ts +3 -0
  7. package/src/internal/IronPdfEngine.ProtoFiles/chrome_render.proto +6 -0
  8. package/src/internal/IronPdfEngine.ProtoFiles/iron_pdf_service.proto +7 -1
  9. package/src/internal/IronPdfEngine.ProtoFiles/pdfium_compress.proto +1 -0
  10. package/src/internal/IronPdfEngine.ProtoFiles/pdfium_form.proto +32 -0
  11. package/src/internal/IronPdfEngine.ProtoFiles/qpdf.proto +51 -0
  12. package/src/internal/access.d.ts.map +1 -1
  13. package/src/internal/access.js +3 -0
  14. package/src/internal/access.js.map +1 -1
  15. package/src/internal/access.ts +4 -0
  16. package/src/internal/generated_proto/iron_pdf_service.d.ts +628 -305
  17. package/src/internal/generated_proto/iron_pdf_service.d.ts.map +1 -1
  18. package/src/internal/generated_proto/iron_pdf_service.ts +628 -305
  19. package/src/internal/generated_proto/ironpdfengineproto/ChromePdfRenderOptionsP.d.ts +15 -0
  20. package/src/internal/generated_proto/ironpdfengineproto/ChromePdfRenderOptionsP.d.ts.map +1 -1
  21. package/src/internal/generated_proto/ironpdfengineproto/ChromePdfRenderOptionsP.ts +15 -0
  22. package/src/internal/generated_proto/ironpdfengineproto/IronPdfService.d.ts +52 -0
  23. package/src/internal/generated_proto/ironpdfengineproto/IronPdfService.d.ts.map +1 -1
  24. package/src/internal/generated_proto/ironpdfengineproto/IronPdfService.ts +64 -0
  25. package/src/internal/generated_proto/ironpdfengineproto/PdfiumCompressImagesRequestP.d.ts +2 -0
  26. package/src/internal/generated_proto/ironpdfengineproto/PdfiumCompressImagesRequestP.d.ts.map +1 -1
  27. package/src/internal/generated_proto/ironpdfengineproto/PdfiumCompressImagesRequestP.ts +2 -0
  28. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackRequestP.d.ts +8 -0
  29. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackRequestP.d.ts.map +1 -0
  30. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackRequestP.js +4 -0
  31. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackRequestP.js.map +1 -0
  32. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackRequestP.ts +11 -0
  33. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackResultP.d.ts +12 -0
  34. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackResultP.d.ts.map +1 -0
  35. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackResultP.js +4 -0
  36. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackResultP.js.map +1 -0
  37. package/src/internal/generated_proto/ironpdfengineproto/PdfiumDisableFormFontFallbackResultP.ts +15 -0
  38. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontRequestStreamP.d.ts +25 -0
  39. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontRequestStreamP.d.ts.map +1 -0
  40. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontRequestStreamP.js +4 -0
  41. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontRequestStreamP.js.map +1 -0
  42. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontRequestStreamP.ts +28 -0
  43. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontResultP.d.ts +12 -0
  44. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontResultP.d.ts.map +1 -0
  45. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontResultP.js +4 -0
  46. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontResultP.js.map +1 -0
  47. package/src/internal/generated_proto/ironpdfengineproto/PdfiumSetFormFontResultP.ts +15 -0
  48. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedFromBytesRequestStreamP.d.ts +23 -0
  49. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedFromBytesRequestStreamP.d.ts.map +1 -0
  50. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedFromBytesRequestStreamP.js +4 -0
  51. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedFromBytesRequestStreamP.js.map +1 -0
  52. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedFromBytesRequestStreamP.ts +26 -0
  53. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedRequestP.d.ts +15 -0
  54. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedRequestP.d.ts.map +1 -0
  55. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedRequestP.js +4 -0
  56. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedRequestP.js.map +1 -0
  57. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressAndSaveAsAdvancedRequestP.ts +18 -0
  58. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressionFlagsP.d.ts +30 -0
  59. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressionFlagsP.d.ts.map +1 -0
  60. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressionFlagsP.js +4 -0
  61. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressionFlagsP.js.map +1 -0
  62. package/src/internal/generated_proto/ironpdfengineproto/QPdfCompressionFlagsP.ts +33 -0
  63. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestIdP.d.ts +10 -0
  64. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestIdP.d.ts.map +1 -0
  65. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestIdP.js +4 -0
  66. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestIdP.js.map +1 -0
  67. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestIdP.ts +13 -0
  68. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestStreamP.d.ts +18 -0
  69. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestStreamP.d.ts.map +1 -0
  70. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestStreamP.js +4 -0
  71. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestStreamP.js.map +1 -0
  72. package/src/internal/generated_proto/ironpdfengineproto/QPdfLinearizeInMemoryRequestStreamP.ts +21 -0
  73. package/src/internal/grpc_layer/chrome/converter.d.ts +10 -0
  74. package/src/internal/grpc_layer/chrome/converter.d.ts.map +1 -1
  75. package/src/internal/grpc_layer/chrome/converter.js +61 -2
  76. package/src/internal/grpc_layer/chrome/converter.js.map +1 -1
  77. package/src/internal/grpc_layer/chrome/converter.ts +67 -0
  78. package/src/internal/grpc_layer/pdfium/annotations.d.ts +30 -0
  79. package/src/internal/grpc_layer/pdfium/annotations.d.ts.map +1 -0
  80. package/src/internal/grpc_layer/pdfium/annotations.js +161 -0
  81. package/src/internal/grpc_layer/pdfium/annotations.js.map +1 -0
  82. package/src/internal/grpc_layer/pdfium/annotations.ts +190 -0
  83. package/src/internal/grpc_layer/pdfium/bookmarks.d.ts +7 -0
  84. package/src/internal/grpc_layer/pdfium/bookmarks.d.ts.map +1 -0
  85. package/src/internal/grpc_layer/pdfium/bookmarks.js +53 -0
  86. package/src/internal/grpc_layer/pdfium/bookmarks.js.map +1 -0
  87. package/src/internal/grpc_layer/pdfium/bookmarks.ts +50 -0
  88. package/src/internal/grpc_layer/pdfium/compress.d.ts +28 -0
  89. package/src/internal/grpc_layer/pdfium/compress.d.ts.map +1 -1
  90. package/src/internal/grpc_layer/pdfium/compress.js +154 -3
  91. package/src/internal/grpc_layer/pdfium/compress.js.map +1 -1
  92. package/src/internal/grpc_layer/pdfium/compress.ts +191 -1
  93. package/src/internal/grpc_layer/pdfium/form.d.ts +15 -0
  94. package/src/internal/grpc_layer/pdfium/form.d.ts.map +1 -0
  95. package/src/internal/grpc_layer/pdfium/form.js +99 -0
  96. package/src/internal/grpc_layer/pdfium/form.js.map +1 -0
  97. package/src/internal/grpc_layer/pdfium/form.ts +119 -0
  98. package/src/internal/grpc_layer/pdfium/formFontValidator.d.ts +26 -0
  99. package/src/internal/grpc_layer/pdfium/formFontValidator.d.ts.map +1 -0
  100. package/src/internal/grpc_layer/pdfium/formFontValidator.js +81 -0
  101. package/src/internal/grpc_layer/pdfium/formFontValidator.js.map +1 -0
  102. package/src/internal/grpc_layer/pdfium/formFontValidator.ts +86 -0
  103. package/src/internal/grpc_layer/pdfium/linearize.d.ts +48 -0
  104. package/src/internal/grpc_layer/pdfium/linearize.d.ts.map +1 -0
  105. package/src/internal/grpc_layer/pdfium/linearize.js +309 -0
  106. package/src/internal/grpc_layer/pdfium/linearize.js.map +1 -0
  107. package/src/internal/grpc_layer/pdfium/linearize.ts +338 -0
  108. package/src/internal/zod/renderSchema.d.ts.map +1 -1
  109. package/src/internal/zod/renderSchema.js +6 -1
  110. package/src/internal/zod/renderSchema.js.map +1 -1
  111. package/src/internal/zod/renderSchema.ts +6 -1
  112. package/src/public/annotation.d.ts +166 -0
  113. package/src/public/annotation.d.ts.map +1 -0
  114. package/src/public/annotation.js +61 -0
  115. package/src/public/annotation.js.map +1 -0
  116. package/src/public/annotation.ts +166 -0
  117. package/src/public/bookmark.d.ts +25 -0
  118. package/src/public/bookmark.d.ts.map +1 -0
  119. package/src/public/bookmark.js +3 -0
  120. package/src/public/bookmark.js.map +1 -0
  121. package/src/public/bookmark.ts +28 -0
  122. package/src/public/compression.d.ts +92 -0
  123. package/src/public/compression.d.ts.map +1 -0
  124. package/src/public/compression.js +26 -0
  125. package/src/public/compression.js.map +1 -0
  126. package/src/public/compression.ts +107 -0
  127. package/src/public/ironpdfglobalconfig.d.ts +12 -0
  128. package/src/public/ironpdfglobalconfig.d.ts.map +1 -1
  129. package/src/public/ironpdfglobalconfig.js +7 -0
  130. package/src/public/ironpdfglobalconfig.js.map +1 -1
  131. package/src/public/ironpdfglobalconfig.ts +19 -0
  132. package/src/public/pdfDocument.d.ts +234 -1
  133. package/src/public/pdfDocument.d.ts.map +1 -1
  134. package/src/public/pdfDocument.js +489 -17
  135. package/src/public/pdfDocument.js.map +1 -1
  136. package/src/public/pdfDocument.ts +518 -19
  137. package/src/public/render.d.ts +104 -0
  138. package/src/public/render.d.ts.map +1 -1
  139. package/src/public/render.js +35 -1
  140. package/src/public/render.js.map +1 -1
  141. package/src/public/render.ts +101 -0
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Destination type that controls how a PDF reader displays the target page when a
3
+ * bookmark or internal hyperlink is followed.
4
+ *
5
+ * Mirrors {@code IronPdf.Bookmarks.BookmarkDestinations} on the C# side. The numeric
6
+ * value of each entry is what the engine expects on the wire, so the order must match
7
+ * the C# enum.
8
+ *
9
+ * Corresponds to the PDF 1.7 specification §12.3.2 "Explicit Destinations".
10
+ */
11
+ export enum BookmarkDestinations {
12
+ /**
13
+ * Fit the entire destination page within the window (PDF {@code /Fit}).
14
+ * No additional coordinates are used.
15
+ */
16
+ Page = 0,
17
+ /**
18
+ * Scroll to a specific Y coordinate on the destination page while fitting the
19
+ * page width to the window (PDF {@code /FitH}).
20
+ * Uses {@link LinkAnnotation.destinationTop}.
21
+ */
22
+ PageY = 1,
23
+ /**
24
+ * Scroll to a specific X coordinate on the destination page while fitting the
25
+ * page height to the window (PDF {@code /FitV}).
26
+ * Uses {@link LinkAnnotation.destinationLeft}.
27
+ */
28
+ PageX = 2,
29
+ /**
30
+ * Scroll to a specific position and zoom level (PDF {@code /XYZ}).
31
+ * Uses {@link LinkAnnotation.destinationLeft}, {@link LinkAnnotation.destinationTop},
32
+ * and {@link LinkAnnotation.destinationZoom}. A {@code destinationZoom} of 0 means
33
+ * "inherit the current zoom".
34
+ */
35
+ PageZoom = 3,
36
+ /**
37
+ * Fit the specified rectangle of the destination page into the window (PDF {@code /FitR}).
38
+ * Uses {@link LinkAnnotation.destinationLeft}, {@link LinkAnnotation.destinationBottom},
39
+ * {@link LinkAnnotation.destinationRight}, and {@link LinkAnnotation.destinationTop}.
40
+ */
41
+ PageRect = 4,
42
+ /**
43
+ * Fit the bounding box of the destination page into the window (PDF {@code /FitB}).
44
+ */
45
+ PageBounds = 5,
46
+ /**
47
+ * Scroll to a Y coordinate while fitting the bounding box width to the window
48
+ * (PDF {@code /FitBH}). Uses {@link LinkAnnotation.destinationTop}.
49
+ */
50
+ PageBoundsY = 6,
51
+ /**
52
+ * Scroll to an X coordinate while fitting the bounding box height to the window
53
+ * (PDF {@code /FitBV}). Uses {@link LinkAnnotation.destinationLeft}.
54
+ */
55
+ PageBoundsX = 7,
56
+ }
57
+
58
+ /**
59
+ * Defines a clickable link annotation that navigates to a specific page within the same
60
+ * PDF document. Useful for building custom tables of contents, cross-references, and
61
+ * in-document navigation.
62
+ *
63
+ * Mirrors {@code IronPdf.Annotations.LinkAnnotation} on the C# side.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * // Simple TOC link: from page 0 to page 3
68
+ * await pdf.addLinkAnnotation({
69
+ * pageIndex: 0,
70
+ * destinationPageIndex: 3,
71
+ * x: 72, y: 700,
72
+ * width: 300, height: 18,
73
+ * contents: "Chapter 1 - Introduction",
74
+ * });
75
+ *
76
+ * // Scroll-to-position link: jump to y=400 on page 1
77
+ * await pdf.addLinkAnnotation({
78
+ * pageIndex: 0,
79
+ * destinationPageIndex: 1,
80
+ * destinationType: BookmarkDestinations.PageZoom,
81
+ * destinationTop: 400,
82
+ * destinationZoom: 100,
83
+ * x: 72, y: 650,
84
+ * width: 300, height: 18,
85
+ * });
86
+ * ```
87
+ *
88
+ * <b>Coordinate note:</b> {@code y} sets the <em>bottom</em> edge of the clickable area
89
+ * using PDF coordinates (origin at bottom-left of page).
90
+ */
91
+ export interface LinkAnnotation {
92
+ /** Zero-based index of the page where the link is placed. */
93
+ pageIndex: number;
94
+ /** Zero-based index of the page to navigate to when clicked. */
95
+ destinationPageIndex: number;
96
+ /**
97
+ * Destination type controlling how the target page is displayed.
98
+ * @default BookmarkDestinations.Page
99
+ */
100
+ destinationType?: BookmarkDestinations;
101
+ /**
102
+ * Left coordinate of the destination position, in points.
103
+ * Used by {@link BookmarkDestinations.PageZoom}, {@link BookmarkDestinations.PageX},
104
+ * {@link BookmarkDestinations.PageRect}, and {@link BookmarkDestinations.PageBoundsX}.
105
+ */
106
+ destinationLeft?: number;
107
+ /**
108
+ * Right coordinate of the destination position, in points.
109
+ * Used by {@link BookmarkDestinations.PageRect}.
110
+ */
111
+ destinationRight?: number;
112
+ /**
113
+ * Top coordinate of the destination position, in points.
114
+ * Used by {@link BookmarkDestinations.PageZoom}, {@link BookmarkDestinations.PageY},
115
+ * {@link BookmarkDestinations.PageRect}, and {@link BookmarkDestinations.PageBoundsY}.
116
+ */
117
+ destinationTop?: number;
118
+ /**
119
+ * Bottom coordinate of the destination position, in points.
120
+ * Used by {@link BookmarkDestinations.PageRect}.
121
+ */
122
+ destinationBottom?: number;
123
+ /**
124
+ * Zoom level (in percent) for the destination. Used by
125
+ * {@link BookmarkDestinations.PageZoom}. A value of 0 means inherit the current zoom.
126
+ */
127
+ destinationZoom?: number;
128
+ /**
129
+ * Horizontal X position from the LEFT edge of the page, in points.
130
+ */
131
+ x: number;
132
+ /**
133
+ * Vertical Y position from the BOTTOM edge of the page, in points.
134
+ * PDF coordinate system places Y=0 at the bottom of the page.
135
+ */
136
+ y: number;
137
+ /** Width of the clickable link area, in points. */
138
+ width: number;
139
+ /** Height of the clickable link area, in points. */
140
+ height: number;
141
+ /**
142
+ * Color code for the link border in CSS `#RRGGBB` format.
143
+ * @default undefined (no explicit color)
144
+ */
145
+ colorCode?: string;
146
+ /**
147
+ * Whether the link annotation is hidden from users.
148
+ * @default false
149
+ */
150
+ hidden?: boolean;
151
+ /**
152
+ * Descriptive text content for this link annotation.
153
+ * @default ""
154
+ */
155
+ contents?: string;
156
+ /**
157
+ * Title for this link annotation.
158
+ * @default ""
159
+ */
160
+ title?: string;
161
+ /**
162
+ * Whether the link annotation displays a visible border when clicked.
163
+ * @default false
164
+ */
165
+ showBorder?: boolean;
166
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * A single PDF bookmark (outline entry). Mirrors the C# {@code IronPdf.Bookmark}
3
+ * shape — flat structure with parent linkage instead of nested children.
4
+ *
5
+ * <p>Returned by {@link PdfDocument.getBookmarks}. Hierarchy is conveyed via
6
+ * {@link parentItemId} (a bookmark's parent has matching {@link itemId}) and
7
+ * {@link hierarchy} (a path-like string describing depth in the outline tree).</p>
8
+ */
9
+ export interface Bookmark {
10
+ /** Human-readable label shown in the PDF reader's bookmark panel. */
11
+ text: string;
12
+ /** Zero-based page index this bookmark navigates to. */
13
+ pageIndex: number;
14
+ /**
15
+ * Path-like string describing this bookmark's depth in the outline tree.
16
+ * Empty string for roots; nested entries have something like "0/1" or
17
+ * "Chapter 1/Section 1.1" depending on engine encoding.
18
+ */
19
+ hierarchy: string;
20
+ /** Stable identifier for this bookmark within the document. */
21
+ itemId: string;
22
+ /** {@link itemId} of the parent bookmark, or empty string for roots. */
23
+ parentItemId: string;
24
+ }
25
+ //# sourceMappingURL=bookmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookmark.d.ts","sourceRoot":"","sources":["bookmark.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACxB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IAEf,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=bookmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookmark.js","sourceRoot":"","sources":["bookmark.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * A single PDF bookmark (outline entry). Mirrors the C# {@code IronPdf.Bookmark}
3
+ * shape — flat structure with parent linkage instead of nested children.
4
+ *
5
+ * <p>Returned by {@link PdfDocument.getBookmarks}. Hierarchy is conveyed via
6
+ * {@link parentItemId} (a bookmark's parent has matching {@link itemId}) and
7
+ * {@link hierarchy} (a path-like string describing depth in the outline tree).</p>
8
+ */
9
+ export interface Bookmark {
10
+ /** Human-readable label shown in the PDF reader's bookmark panel. */
11
+ text: string;
12
+
13
+ /** Zero-based page index this bookmark navigates to. */
14
+ pageIndex: number;
15
+
16
+ /**
17
+ * Path-like string describing this bookmark's depth in the outline tree.
18
+ * Empty string for roots; nested entries have something like "0/1" or
19
+ * "Chapter 1/Section 1.1" depending on engine encoding.
20
+ */
21
+ hierarchy: string;
22
+
23
+ /** Stable identifier for this bookmark within the document. */
24
+ itemId: string;
25
+
26
+ /** {@link itemId} of the parent bookmark, or empty string for roots. */
27
+ parentItemId: string;
28
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Object stream mode used when writing the compressed PDF.
3
+ *
4
+ * Values are the literal strings the engine expects on
5
+ * {@code QPdfCompressionFlagsP.object_streams}.
6
+ */
7
+ export declare enum ObjectStreamMode {
8
+ /**
9
+ * Pack indirect objects into object streams. Smallest output for PDF 1.5+ (default).
10
+ */
11
+ Generate = "generate",
12
+ /**
13
+ * Keep the input's object stream layout unchanged.
14
+ */
15
+ Preserve = "preserve",
16
+ /**
17
+ * Write every object as a top-level indirect object (no object streams).
18
+ * Use when consumer tools cannot read object streams.
19
+ */
20
+ Disable = "disable"
21
+ }
22
+ /**
23
+ * Configuration for the advanced compression pipeline.
24
+ *
25
+ * @example Web/email (strongest size reduction)
26
+ * ```ts
27
+ * const opts: AdvancedCompressionOptions = {
28
+ * jpegQuality: 70,
29
+ * targetImageDpi: 150,
30
+ * removeStructureTree: true,
31
+ * };
32
+ * ```
33
+ *
34
+ * @example Print quality
35
+ * ```ts
36
+ * const opts: AdvancedCompressionOptions = {
37
+ * jpegQuality: 90,
38
+ * targetImageDpi: 300,
39
+ * };
40
+ * ```
41
+ */
42
+ export interface AdvancedCompressionOptions {
43
+ /**
44
+ * JPEG quality used when re-encoding images during optimization (1-100).
45
+ * When set, automatically enables image optimization.
46
+ *
47
+ * Default: `null` (no image re-encoding).
48
+ *
49
+ * Where the re-encoding happens depends on {@link targetImageDpi}:
50
+ * - `targetImageDpi` set (default 150): each image is downsampled and
51
+ * re-encoded at this quality.
52
+ * - `targetImageDpi = null`: qpdf re-encodes images at this quality
53
+ * without changing pixel dimensions.
54
+ */
55
+ jpegQuality?: number | null;
56
+ /**
57
+ * Target DPI for image downsampling during advanced compression.
58
+ * Images whose effective rendered DPI exceeds this value are
59
+ * downsampled before re-encoding.
60
+ *
61
+ * Default: `150`. Set to `null` (or `0`) to disable downsampling.
62
+ *
63
+ * **Lossy** — once an image is downsampled it cannot be restored to its
64
+ * original resolution.
65
+ */
66
+ targetImageDpi?: number | null;
67
+ /** 4:4:4 chroma subsampling when true (better color), 4:1:1 when false. Default true. */
68
+ highQualityImageSubsampling?: boolean;
69
+ /** Remove the document structure tree before compression. Default false. */
70
+ removeStructureTree?: boolean;
71
+ /** Compress content streams using zlib/Flate. Default true. */
72
+ compressStreams?: boolean;
73
+ /** Re-compress already Flate-encoded streams using {@link compressionLevel}. Default true. */
74
+ recompressFlate?: boolean;
75
+ /** zlib compression level (0-9). Default 9. */
76
+ compressionLevel?: number;
77
+ /** Object stream mode used when writing the output PDF. Default {@link ObjectStreamMode.Generate}. */
78
+ objectStreams?: ObjectStreamMode;
79
+ /** Drop indirect objects that are not referenced from the catalog. Default true. */
80
+ removeUnreferencedResources?: boolean;
81
+ /** Merge a page's content streams so they Flate-compress together. Default true. */
82
+ coalesceContents?: boolean;
83
+ /** Decode generalized filters (FlateDecode, LZW, ASCII85, ASCIIHex) before re-encoding. Default true. */
84
+ decodeGeneralizedStreams?: boolean;
85
+ /** Minimum image width (pixels) for image optimization to apply. Default 0. */
86
+ optimizeImagesMinWidth?: number;
87
+ /** Minimum image height (pixels) for image optimization to apply. Default 0. */
88
+ optimizeImagesMinHeight?: number;
89
+ /** Minimum image area (width × height) for image optimization to apply. Default 0. */
90
+ optimizeImagesMinArea?: number;
91
+ }
92
+ //# sourceMappingURL=compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["compression.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,gBAAgB;IAC3B;;OAEG;IACH,QAAQ,aAAa;IAErB;;OAEG;IACH,QAAQ,aAAa;IAErB;;;OAGG;IACH,OAAO,YAAY;CACnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,0BAA0B;IAC1C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,yFAAyF;IACzF,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,sGAAsG;IACtG,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAEjC,oFAAoF;IACpF,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,yGAAyG;IACzG,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gFAAgF;IAChF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,sFAAsF;IACtF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectStreamMode = void 0;
4
+ /**
5
+ * Object stream mode used when writing the compressed PDF.
6
+ *
7
+ * Values are the literal strings the engine expects on
8
+ * {@code QPdfCompressionFlagsP.object_streams}.
9
+ */
10
+ var ObjectStreamMode;
11
+ (function (ObjectStreamMode) {
12
+ /**
13
+ * Pack indirect objects into object streams. Smallest output for PDF 1.5+ (default).
14
+ */
15
+ ObjectStreamMode["Generate"] = "generate";
16
+ /**
17
+ * Keep the input's object stream layout unchanged.
18
+ */
19
+ ObjectStreamMode["Preserve"] = "preserve";
20
+ /**
21
+ * Write every object as a top-level indirect object (no object streams).
22
+ * Use when consumer tools cannot read object streams.
23
+ */
24
+ ObjectStreamMode["Disable"] = "disable";
25
+ })(ObjectStreamMode = exports.ObjectStreamMode || (exports.ObjectStreamMode = {}));
26
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["compression.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAY,gBAgBX;AAhBD,WAAY,gBAAgB;IAC3B;;OAEG;IACH,yCAAqB,CAAA;IAErB;;OAEG;IACH,yCAAqB,CAAA;IAErB;;;OAGG;IACH,uCAAmB,CAAA;AACpB,CAAC,EAhBW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAgB3B"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Object stream mode used when writing the compressed PDF.
3
+ *
4
+ * Values are the literal strings the engine expects on
5
+ * {@code QPdfCompressionFlagsP.object_streams}.
6
+ */
7
+ export enum ObjectStreamMode {
8
+ /**
9
+ * Pack indirect objects into object streams. Smallest output for PDF 1.5+ (default).
10
+ */
11
+ Generate = "generate",
12
+
13
+ /**
14
+ * Keep the input's object stream layout unchanged.
15
+ */
16
+ Preserve = "preserve",
17
+
18
+ /**
19
+ * Write every object as a top-level indirect object (no object streams).
20
+ * Use when consumer tools cannot read object streams.
21
+ */
22
+ Disable = "disable",
23
+ }
24
+
25
+ /**
26
+ * Configuration for the advanced compression pipeline.
27
+ *
28
+ * @example Web/email (strongest size reduction)
29
+ * ```ts
30
+ * const opts: AdvancedCompressionOptions = {
31
+ * jpegQuality: 70,
32
+ * targetImageDpi: 150,
33
+ * removeStructureTree: true,
34
+ * };
35
+ * ```
36
+ *
37
+ * @example Print quality
38
+ * ```ts
39
+ * const opts: AdvancedCompressionOptions = {
40
+ * jpegQuality: 90,
41
+ * targetImageDpi: 300,
42
+ * };
43
+ * ```
44
+ */
45
+ export interface AdvancedCompressionOptions {
46
+ /**
47
+ * JPEG quality used when re-encoding images during optimization (1-100).
48
+ * When set, automatically enables image optimization.
49
+ *
50
+ * Default: `null` (no image re-encoding).
51
+ *
52
+ * Where the re-encoding happens depends on {@link targetImageDpi}:
53
+ * - `targetImageDpi` set (default 150): each image is downsampled and
54
+ * re-encoded at this quality.
55
+ * - `targetImageDpi = null`: qpdf re-encodes images at this quality
56
+ * without changing pixel dimensions.
57
+ */
58
+ jpegQuality?: number | null;
59
+
60
+ /**
61
+ * Target DPI for image downsampling during advanced compression.
62
+ * Images whose effective rendered DPI exceeds this value are
63
+ * downsampled before re-encoding.
64
+ *
65
+ * Default: `150`. Set to `null` (or `0`) to disable downsampling.
66
+ *
67
+ * **Lossy** — once an image is downsampled it cannot be restored to its
68
+ * original resolution.
69
+ */
70
+ targetImageDpi?: number | null;
71
+
72
+ /** 4:4:4 chroma subsampling when true (better color), 4:1:1 when false. Default true. */
73
+ highQualityImageSubsampling?: boolean;
74
+
75
+ /** Remove the document structure tree before compression. Default false. */
76
+ removeStructureTree?: boolean;
77
+
78
+ /** Compress content streams using zlib/Flate. Default true. */
79
+ compressStreams?: boolean;
80
+
81
+ /** Re-compress already Flate-encoded streams using {@link compressionLevel}. Default true. */
82
+ recompressFlate?: boolean;
83
+
84
+ /** zlib compression level (0-9). Default 9. */
85
+ compressionLevel?: number;
86
+
87
+ /** Object stream mode used when writing the output PDF. Default {@link ObjectStreamMode.Generate}. */
88
+ objectStreams?: ObjectStreamMode;
89
+
90
+ /** Drop indirect objects that are not referenced from the catalog. Default true. */
91
+ removeUnreferencedResources?: boolean;
92
+
93
+ /** Merge a page's content streams so they Flate-compress together. Default true. */
94
+ coalesceContents?: boolean;
95
+
96
+ /** Decode generalized filters (FlateDecode, LZW, ASCII85, ASCIIHex) before re-encoding. Default true. */
97
+ decodeGeneralizedStreams?: boolean;
98
+
99
+ /** Minimum image width (pixels) for image optimization to apply. Default 0. */
100
+ optimizeImagesMinWidth?: number;
101
+
102
+ /** Minimum image height (pixels) for image optimization to apply. Default 0. */
103
+ optimizeImagesMinHeight?: number;
104
+
105
+ /** Minimum image area (width × height) for image optimization to apply. Default 0. */
106
+ optimizeImagesMinArea?: number;
107
+ }
@@ -91,5 +91,17 @@ export interface IronPdfConfig {
91
91
  * @default true
92
92
  */
93
93
  autoInstallDependency?: boolean | undefined;
94
+ /**
95
+ * Watchdog timeout (in seconds) for queued IronPdfEngine Chrome jobs. If a
96
+ * render does not complete within this window the queue slot is reclaimed
97
+ * so a single hung native call cannot wedge the engine queue under load.
98
+ *
99
+ * Forwarded to the engine subprocess
100
+ * via the {@code job_queue_watchdog_timeout_seconds} CLI argument; leave
101
+ * undefined or 0 to use the engine's built-in default.
102
+ *
103
+ * @default undefined
104
+ */
105
+ jobQueueWatchdogTimeoutSeconds?: number | undefined;
94
106
  }
95
107
  //# sourceMappingURL=ironpdfglobalconfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ironpdfglobalconfig.d.ts","sourceRoot":"","sources":["ironpdfglobalconfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsB;IAE9C,OAAO,CAAC,MAAM,CAAC,OAAO,CAKpB;IACF,OAAO;WASO,WAAW;IAIzB;;;;OAIG;WACW,SAAS,CAAC,aAAa,EAAE,aAAa;WAiBtC,SAAS,IAAI,aAAa;IAIxC,OAAc,oBAAoB,EAAE,MAAM,CAEU;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;;;;;;OAQG;IACH,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C;;;OAGG;IACH,aAAa,CAAC,EAAC,cAAc,GAAG,SAAS,CAAC;IAC1C;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5C"}
1
+ {"version":3,"file":"ironpdfglobalconfig.d.ts","sourceRoot":"","sources":["ironpdfglobalconfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsB;IAE9C,OAAO,CAAC,MAAM,CAAC,OAAO,CAKpB;IACF,OAAO;WASO,WAAW;IAIzB;;;;OAIG;WACW,SAAS,CAAC,aAAa,EAAE,aAAa;WAwBtC,SAAS,IAAI,aAAa;IAIxC,OAAc,oBAAoB,EAAE,MAAM,CAEU;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;;;;;;OAQG;IACH,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C;;;OAGG;IACH,aAAa,CAAC,EAAC,cAAc,GAAG,SAAS,CAAC;IAC1C;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C;;;;;;;;;;OAUG;IACH,8BAA8B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpD"}
@@ -36,6 +36,13 @@ class IronPdfGlobalConfig {
36
36
  IronPdfGlobalConfig._config.ironPdfEngineDockerAddress =
37
37
  ironPdfConfig.ironPdfEngineDockerAddress;
38
38
  }
39
+ if (ironPdfConfig.jobQueueWatchdogTimeoutSeconds != undefined) {
40
+ if (ironPdfConfig.jobQueueWatchdogTimeoutSeconds < 0) {
41
+ throw new Error("jobQueueWatchdogTimeoutSeconds must be non-negative");
42
+ }
43
+ IronPdfGlobalConfig._config.jobQueueWatchdogTimeoutSeconds =
44
+ ironPdfConfig.jobQueueWatchdogTimeoutSeconds;
45
+ }
39
46
  }
40
47
  static getConfig() {
41
48
  return IronPdfGlobalConfig._config;
@@ -1 +1 @@
1
- {"version":3,"file":"ironpdfglobalconfig.js","sourceRoot":"","sources":["ironpdfglobalconfig.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,mBAAmB;IAS/B;QACC,IAAI,mBAAmB,CAAC,SAAS,EAAE;YAClC,MAAM,IAAI,KAAK,CACd,uEAAuE,CACvE,CAAC;SACF;QACD,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,OAAO,mBAAmB,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACrG,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,SAAS,CAAC,aAA4B;QACnD,IAAI,aAAa,CAAC,SAAS,IAAI,SAAS,EAAE;YACzC,mBAAmB,CAAC,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;SAChE;QACD,IAAI,aAAa,CAAC,UAAU,EAAE;YAC7B,mBAAmB,CAAC,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;SAClE;QACD,IAAI,aAAa,CAAC,oBAAoB,EAAE;YACvC,mBAAmB,CAAC,OAAO,CAAC,oBAAoB;gBAC/C,aAAa,CAAC,oBAAoB,CAAC;SACpC;QACD,IAAI,aAAa,CAAC,0BAA0B,EAAE;YAC7C,mBAAmB,CAAC,OAAO,CAAC,0BAA0B;gBACrD,aAAa,CAAC,0BAA0B,CAAC;SAC1C;IACF,CAAC;IAEM,MAAM,CAAC,SAAS;QACtB,OAAO,mBAAmB,CAAC,OAAO,CAAC;IACpC,CAAC;;AA9CF,kDAmDC;AAhDe,2BAAO,GAAkB;IACvC,oBAAoB,EAAE,iBAAiB;IACvC,0BAA0B,EAAE,SAAS;IACrC,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,SAAS;CACrB,CAAC;AAwCY,wCAAoB;AACjC,8DAA8D;AAC9D,OAAO,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ironpdfglobalconfig.js","sourceRoot":"","sources":["ironpdfglobalconfig.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,mBAAmB;IAS/B;QACC,IAAI,mBAAmB,CAAC,SAAS,EAAE;YAClC,MAAM,IAAI,KAAK,CACd,uEAAuE,CACvE,CAAC;SACF;QACD,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,OAAO,mBAAmB,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACrG,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,SAAS,CAAC,aAA4B;QACnD,IAAI,aAAa,CAAC,SAAS,IAAI,SAAS,EAAE;YACzC,mBAAmB,CAAC,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;SAChE;QACD,IAAI,aAAa,CAAC,UAAU,EAAE;YAC7B,mBAAmB,CAAC,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;SAClE;QACD,IAAI,aAAa,CAAC,oBAAoB,EAAE;YACvC,mBAAmB,CAAC,OAAO,CAAC,oBAAoB;gBAC/C,aAAa,CAAC,oBAAoB,CAAC;SACpC;QACD,IAAI,aAAa,CAAC,0BAA0B,EAAE;YAC7C,mBAAmB,CAAC,OAAO,CAAC,0BAA0B;gBACrD,aAAa,CAAC,0BAA0B,CAAC;SAC1C;QACD,IAAI,aAAa,CAAC,8BAA8B,IAAI,SAAS,EAAE;YAC9D,IAAI,aAAa,CAAC,8BAA8B,GAAG,CAAC,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;aACvE;YACD,mBAAmB,CAAC,OAAO,CAAC,8BAA8B;gBACzD,aAAa,CAAC,8BAA8B,CAAC;SAC9C;IACF,CAAC;IAEM,MAAM,CAAC,SAAS;QACtB,OAAO,mBAAmB,CAAC,OAAO,CAAC;IACpC,CAAC;;AArDF,kDA0DC;AAvDe,2BAAO,GAAkB;IACvC,oBAAoB,EAAE,iBAAiB;IACvC,0BAA0B,EAAE,SAAS;IACrC,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,SAAS;CACrB,CAAC;AA+CY,wCAAoB;AACjC,8DAA8D;AAC9D,OAAO,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC"}
@@ -47,6 +47,13 @@ export class IronPdfGlobalConfig {
47
47
  IronPdfGlobalConfig._config.ironPdfEngineDockerAddress =
48
48
  ironPdfConfig.ironPdfEngineDockerAddress;
49
49
  }
50
+ if (ironPdfConfig.jobQueueWatchdogTimeoutSeconds != undefined) {
51
+ if (ironPdfConfig.jobQueueWatchdogTimeoutSeconds < 0) {
52
+ throw new Error("jobQueueWatchdogTimeoutSeconds must be non-negative");
53
+ }
54
+ IronPdfGlobalConfig._config.jobQueueWatchdogTimeoutSeconds =
55
+ ironPdfConfig.jobQueueWatchdogTimeoutSeconds;
56
+ }
50
57
  }
51
58
 
52
59
  public static getConfig(): IronPdfConfig {
@@ -131,4 +138,16 @@ export interface IronPdfConfig {
131
138
  * @default true
132
139
  */
133
140
  autoInstallDependency?: boolean | undefined;
141
+ /**
142
+ * Watchdog timeout (in seconds) for queued IronPdfEngine Chrome jobs. If a
143
+ * render does not complete within this window the queue slot is reclaimed
144
+ * so a single hung native call cannot wedge the engine queue under load.
145
+ *
146
+ * Forwarded to the engine subprocess
147
+ * via the {@code job_queue_watchdog_timeout_seconds} CLI argument; leave
148
+ * undefined or 0 to use the engine's built-in default.
149
+ *
150
+ * @default undefined
151
+ */
152
+ jobQueueWatchdogTimeoutSeconds?: number | undefined;
134
153
  }