pdf-oxide 0.3.24 → 0.3.29

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 (271) hide show
  1. package/lib/builders/annotation-builder.d.ts +199 -0
  2. package/lib/builders/annotation-builder.d.ts.map +1 -0
  3. package/lib/builders/annotation-builder.js +318 -0
  4. package/lib/builders/annotation-builder.js.map +1 -0
  5. package/lib/builders/conversion-options-builder.d.ts +107 -0
  6. package/lib/builders/conversion-options-builder.d.ts.map +1 -0
  7. package/lib/builders/conversion-options-builder.js +215 -0
  8. package/lib/builders/conversion-options-builder.js.map +1 -0
  9. package/{src/builders/index.ts → lib/builders/index.d.ts} +1 -1
  10. package/lib/builders/index.d.ts.map +1 -0
  11. package/lib/builders/index.js +12 -0
  12. package/lib/builders/index.js.map +1 -0
  13. package/lib/builders/metadata-builder.d.ts +202 -0
  14. package/lib/builders/metadata-builder.d.ts.map +1 -0
  15. package/lib/builders/metadata-builder.js +286 -0
  16. package/lib/builders/metadata-builder.js.map +1 -0
  17. package/lib/builders/pdf-builder.d.ts +215 -0
  18. package/lib/builders/pdf-builder.d.ts.map +1 -0
  19. package/lib/builders/pdf-builder.js +339 -0
  20. package/lib/builders/pdf-builder.js.map +1 -0
  21. package/lib/builders/search-options-builder.d.ts +74 -0
  22. package/lib/builders/search-options-builder.d.ts.map +1 -0
  23. package/lib/builders/search-options-builder.js +130 -0
  24. package/lib/builders/search-options-builder.js.map +1 -0
  25. package/lib/document-editor-manager.d.ts +140 -0
  26. package/lib/document-editor-manager.d.ts.map +1 -0
  27. package/lib/document-editor-manager.js +257 -0
  28. package/lib/document-editor-manager.js.map +1 -0
  29. package/lib/errors.d.ts +383 -0
  30. package/lib/errors.d.ts.map +1 -0
  31. package/lib/errors.js +1117 -0
  32. package/lib/errors.js.map +1 -0
  33. package/lib/form-field-manager.d.ts +300 -0
  34. package/lib/form-field-manager.d.ts.map +1 -0
  35. package/lib/form-field-manager.js +567 -0
  36. package/lib/form-field-manager.js.map +1 -0
  37. package/lib/hybrid-ml-manager.d.ts +143 -0
  38. package/lib/hybrid-ml-manager.d.ts.map +1 -0
  39. package/lib/hybrid-ml-manager.js +209 -0
  40. package/lib/hybrid-ml-manager.js.map +1 -0
  41. package/lib/index.d.ts +23 -0
  42. package/lib/index.d.ts.map +1 -0
  43. package/lib/index.js +280 -0
  44. package/lib/index.js.map +1 -0
  45. package/lib/managers/accessibility-manager.d.ts +149 -0
  46. package/lib/managers/accessibility-manager.d.ts.map +1 -0
  47. package/lib/managers/accessibility-manager.js +224 -0
  48. package/lib/managers/accessibility-manager.js.map +1 -0
  49. package/lib/managers/annotation-manager.d.ts +220 -0
  50. package/lib/managers/annotation-manager.d.ts.map +1 -0
  51. package/lib/managers/annotation-manager.js +360 -0
  52. package/lib/managers/annotation-manager.js.map +1 -0
  53. package/lib/managers/barcode-manager.d.ts +80 -0
  54. package/lib/managers/barcode-manager.d.ts.map +1 -0
  55. package/lib/managers/barcode-manager.js +226 -0
  56. package/lib/managers/barcode-manager.js.map +1 -0
  57. package/lib/managers/batch-manager.d.ts +186 -0
  58. package/lib/managers/batch-manager.d.ts.map +1 -0
  59. package/lib/managers/batch-manager.js +389 -0
  60. package/lib/managers/batch-manager.js.map +1 -0
  61. package/lib/managers/cache-manager.d.ts +182 -0
  62. package/lib/managers/cache-manager.d.ts.map +1 -0
  63. package/lib/managers/cache-manager.js +387 -0
  64. package/lib/managers/cache-manager.js.map +1 -0
  65. package/lib/managers/compliance-manager.d.ts +104 -0
  66. package/lib/managers/compliance-manager.d.ts.map +1 -0
  67. package/lib/managers/compliance-manager.js +415 -0
  68. package/lib/managers/compliance-manager.js.map +1 -0
  69. package/lib/managers/content-manager.d.ts +121 -0
  70. package/lib/managers/content-manager.d.ts.map +1 -0
  71. package/lib/managers/content-manager.js +295 -0
  72. package/lib/managers/content-manager.js.map +1 -0
  73. package/lib/managers/document-utility-manager.d.ts +370 -0
  74. package/lib/managers/document-utility-manager.d.ts.map +1 -0
  75. package/lib/managers/document-utility-manager.js +731 -0
  76. package/lib/managers/document-utility-manager.js.map +1 -0
  77. package/lib/managers/dom-pdf-creator.d.ts +105 -0
  78. package/lib/managers/dom-pdf-creator.d.ts.map +1 -0
  79. package/lib/managers/dom-pdf-creator.js +300 -0
  80. package/lib/managers/dom-pdf-creator.js.map +1 -0
  81. package/lib/managers/editing-manager.d.ts +249 -0
  82. package/lib/managers/editing-manager.d.ts.map +1 -0
  83. package/lib/managers/editing-manager.js +388 -0
  84. package/lib/managers/editing-manager.js.map +1 -0
  85. package/lib/managers/enterprise-manager.d.ts +193 -0
  86. package/lib/managers/enterprise-manager.d.ts.map +1 -0
  87. package/lib/managers/enterprise-manager.js +305 -0
  88. package/lib/managers/enterprise-manager.js.map +1 -0
  89. package/lib/managers/extended-managers.d.ts +123 -0
  90. package/lib/managers/extended-managers.d.ts.map +1 -0
  91. package/lib/managers/extended-managers.js +658 -0
  92. package/lib/managers/extended-managers.js.map +1 -0
  93. package/lib/managers/extraction-manager.d.ts +247 -0
  94. package/lib/managers/extraction-manager.d.ts.map +1 -0
  95. package/lib/managers/extraction-manager.js +478 -0
  96. package/lib/managers/extraction-manager.js.map +1 -0
  97. package/lib/managers/final-utilities.d.ts +128 -0
  98. package/lib/managers/final-utilities.d.ts.map +1 -0
  99. package/lib/managers/final-utilities.js +653 -0
  100. package/lib/managers/final-utilities.js.map +1 -0
  101. package/lib/managers/hybrid-ml-advanced.d.ts +137 -0
  102. package/lib/managers/hybrid-ml-advanced.d.ts.map +1 -0
  103. package/lib/managers/hybrid-ml-advanced.js +707 -0
  104. package/lib/managers/hybrid-ml-advanced.js.map +1 -0
  105. package/lib/managers/index.d.ts +65 -0
  106. package/lib/managers/index.d.ts.map +1 -0
  107. package/lib/managers/index.js +70 -0
  108. package/lib/managers/index.js.map +1 -0
  109. package/lib/managers/layer-manager.d.ts +204 -0
  110. package/lib/managers/layer-manager.d.ts.map +1 -0
  111. package/lib/managers/layer-manager.js +403 -0
  112. package/lib/managers/layer-manager.js.map +1 -0
  113. package/lib/managers/metadata-manager.d.ts +149 -0
  114. package/lib/managers/metadata-manager.d.ts.map +1 -0
  115. package/lib/managers/metadata-manager.js +281 -0
  116. package/lib/managers/metadata-manager.js.map +1 -0
  117. package/lib/managers/ocr-manager.d.ts +195 -0
  118. package/lib/managers/ocr-manager.d.ts.map +1 -0
  119. package/lib/managers/ocr-manager.js +583 -0
  120. package/lib/managers/ocr-manager.js.map +1 -0
  121. package/lib/managers/optimization-manager.d.ts +103 -0
  122. package/lib/managers/optimization-manager.d.ts.map +1 -0
  123. package/lib/managers/optimization-manager.js +194 -0
  124. package/lib/managers/optimization-manager.js.map +1 -0
  125. package/lib/managers/outline-manager.d.ts +102 -0
  126. package/lib/managers/outline-manager.d.ts.map +1 -0
  127. package/lib/managers/outline-manager.js +170 -0
  128. package/lib/managers/outline-manager.js.map +1 -0
  129. package/lib/managers/page-manager.d.ts +143 -0
  130. package/lib/managers/page-manager.d.ts.map +1 -0
  131. package/lib/managers/page-manager.js +237 -0
  132. package/lib/managers/page-manager.js.map +1 -0
  133. package/lib/managers/pattern-detection.d.ts +170 -0
  134. package/lib/managers/pattern-detection.d.ts.map +1 -0
  135. package/lib/managers/pattern-detection.js +325 -0
  136. package/lib/managers/pattern-detection.js.map +1 -0
  137. package/lib/managers/rendering-manager.d.ts +354 -0
  138. package/lib/managers/rendering-manager.d.ts.map +1 -0
  139. package/lib/managers/rendering-manager.js +680 -0
  140. package/lib/managers/rendering-manager.js.map +1 -0
  141. package/lib/managers/search-manager.d.ts +236 -0
  142. package/lib/managers/search-manager.d.ts.map +1 -0
  143. package/lib/managers/search-manager.js +330 -0
  144. package/lib/managers/search-manager.js.map +1 -0
  145. package/lib/managers/security-manager.d.ts +162 -0
  146. package/lib/managers/security-manager.d.ts.map +1 -0
  147. package/lib/managers/security-manager.js +293 -0
  148. package/lib/managers/security-manager.js.map +1 -0
  149. package/lib/managers/signature-manager.d.ts +725 -0
  150. package/lib/managers/signature-manager.d.ts.map +1 -0
  151. package/lib/managers/signature-manager.js +1365 -0
  152. package/lib/managers/signature-manager.js.map +1 -0
  153. package/lib/managers/streams.d.ts +263 -0
  154. package/lib/managers/streams.d.ts.map +1 -0
  155. package/lib/managers/streams.js +472 -0
  156. package/lib/managers/streams.js.map +1 -0
  157. package/lib/managers/xfa-manager.d.ts +228 -0
  158. package/lib/managers/xfa-manager.d.ts.map +1 -0
  159. package/lib/managers/xfa-manager.js +490 -0
  160. package/lib/managers/xfa-manager.js.map +1 -0
  161. package/lib/pdf-creator-manager.d.ts +201 -0
  162. package/lib/pdf-creator-manager.d.ts.map +1 -0
  163. package/lib/pdf-creator-manager.js +379 -0
  164. package/lib/pdf-creator-manager.js.map +1 -0
  165. package/lib/properties.d.ts +80 -0
  166. package/lib/properties.d.ts.map +1 -0
  167. package/lib/properties.js +455 -0
  168. package/lib/properties.js.map +1 -0
  169. package/lib/result-accessors-manager.d.ts +347 -0
  170. package/lib/result-accessors-manager.d.ts.map +1 -0
  171. package/lib/result-accessors-manager.js +705 -0
  172. package/lib/result-accessors-manager.js.map +1 -0
  173. package/lib/thumbnail-manager.d.ts +122 -0
  174. package/lib/thumbnail-manager.d.ts.map +1 -0
  175. package/lib/thumbnail-manager.js +206 -0
  176. package/lib/thumbnail-manager.js.map +1 -0
  177. package/lib/types/common.d.ts +93 -0
  178. package/lib/types/common.d.ts.map +1 -0
  179. package/lib/types/common.js +5 -0
  180. package/lib/types/common.js.map +1 -0
  181. package/lib/types/document-types.d.ts +353 -0
  182. package/lib/types/document-types.d.ts.map +1 -0
  183. package/lib/types/document-types.js +83 -0
  184. package/lib/types/document-types.js.map +1 -0
  185. package/{src/types/index.ts → lib/types/index.d.ts} +1 -1
  186. package/lib/types/index.d.ts.map +1 -0
  187. package/lib/types/index.js +6 -0
  188. package/lib/types/index.js.map +1 -0
  189. package/lib/types/manager-types.d.ts +180 -0
  190. package/lib/types/manager-types.d.ts.map +1 -0
  191. package/lib/types/manager-types.js +99 -0
  192. package/lib/types/manager-types.js.map +1 -0
  193. package/lib/types/native-bindings.d.ts +440 -0
  194. package/lib/types/native-bindings.d.ts.map +1 -0
  195. package/lib/types/native-bindings.js +8 -0
  196. package/lib/types/native-bindings.js.map +1 -0
  197. package/{src/workers/index.ts → lib/workers/index.d.ts} +1 -1
  198. package/lib/workers/index.d.ts.map +1 -0
  199. package/lib/workers/index.js +6 -0
  200. package/lib/workers/index.js.map +1 -0
  201. package/lib/workers/pool.d.ts +65 -0
  202. package/lib/workers/pool.d.ts.map +1 -0
  203. package/lib/workers/pool.js +195 -0
  204. package/lib/workers/pool.js.map +1 -0
  205. package/lib/workers/worker.d.ts +6 -0
  206. package/lib/workers/worker.d.ts.map +1 -0
  207. package/lib/workers/worker.js +100 -0
  208. package/lib/workers/worker.js.map +1 -0
  209. package/package.json +12 -22
  210. package/prebuilds/darwin-arm64/pdf_oxide.node +0 -0
  211. package/prebuilds/darwin-x64/pdf_oxide.node +0 -0
  212. package/prebuilds/linux-arm64/pdf_oxide.node +0 -0
  213. package/prebuilds/linux-x64/pdf_oxide.node +0 -0
  214. package/prebuilds/win32-x64/pdf_oxide.node +0 -0
  215. package/binding.gyp +0 -35
  216. package/src/builders/annotation-builder.ts +0 -367
  217. package/src/builders/conversion-options-builder.ts +0 -257
  218. package/src/builders/metadata-builder.ts +0 -317
  219. package/src/builders/pdf-builder.ts +0 -386
  220. package/src/builders/search-options-builder.ts +0 -151
  221. package/src/document-editor-manager.ts +0 -318
  222. package/src/errors.ts +0 -1629
  223. package/src/form-field-manager.ts +0 -666
  224. package/src/hybrid-ml-manager.ts +0 -283
  225. package/src/index.ts +0 -453
  226. package/src/managers/accessibility-manager.ts +0 -338
  227. package/src/managers/annotation-manager.ts +0 -439
  228. package/src/managers/barcode-manager.ts +0 -235
  229. package/src/managers/batch-manager.ts +0 -533
  230. package/src/managers/cache-manager.ts +0 -486
  231. package/src/managers/compliance-manager.ts +0 -375
  232. package/src/managers/content-manager.ts +0 -339
  233. package/src/managers/document-utility-manager.ts +0 -922
  234. package/src/managers/dom-pdf-creator.ts +0 -365
  235. package/src/managers/editing-manager.ts +0 -514
  236. package/src/managers/enterprise-manager.ts +0 -478
  237. package/src/managers/extended-managers.ts +0 -437
  238. package/src/managers/extraction-manager.ts +0 -583
  239. package/src/managers/final-utilities.ts +0 -429
  240. package/src/managers/hybrid-ml-advanced.ts +0 -479
  241. package/src/managers/index.ts +0 -239
  242. package/src/managers/layer-manager.ts +0 -500
  243. package/src/managers/metadata-manager.ts +0 -303
  244. package/src/managers/ocr-manager.ts +0 -756
  245. package/src/managers/optimization-manager.ts +0 -262
  246. package/src/managers/outline-manager.ts +0 -196
  247. package/src/managers/page-manager.ts +0 -289
  248. package/src/managers/pattern-detection.ts +0 -440
  249. package/src/managers/rendering-manager.ts +0 -863
  250. package/src/managers/search-manager.ts +0 -385
  251. package/src/managers/security-manager.ts +0 -345
  252. package/src/managers/signature-manager.ts +0 -1664
  253. package/src/managers/streams.ts +0 -618
  254. package/src/managers/xfa-manager.ts +0 -500
  255. package/src/pdf-creator-manager.ts +0 -494
  256. package/src/properties.ts +0 -522
  257. package/src/result-accessors-manager.ts +0 -867
  258. package/src/tests/advanced-features.test.ts +0 -414
  259. package/src/tests/advanced.test.ts +0 -266
  260. package/src/tests/extended-managers.test.ts +0 -316
  261. package/src/tests/final-utilities.test.ts +0 -455
  262. package/src/tests/foundation.test.ts +0 -315
  263. package/src/tests/high-demand.test.ts +0 -257
  264. package/src/tests/specialized.test.ts +0 -97
  265. package/src/thumbnail-manager.ts +0 -272
  266. package/src/types/common.ts +0 -142
  267. package/src/types/document-types.ts +0 -457
  268. package/src/types/manager-types.ts +0 -284
  269. package/src/types/native-bindings.ts +0 -517
  270. package/src/workers/pool.ts +0 -274
  271. package/src/workers/worker.ts +0 -131
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Builder for creating PDF annotations
3
+ *
4
+ * Configures annotation properties like content, appearance, author, and behavior.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { AnnotationBuilder } from 'pdf_oxide';
9
+ *
10
+ * const annotation = AnnotationBuilder.create()
11
+ * .type('highlight')
12
+ * .content('Important section')
13
+ * .author('Reviewer')
14
+ * .color([1, 1, 0]) // Yellow
15
+ * .build();
16
+ *
17
+ * pdf.addAnnotation(annotation);
18
+ * ```
19
+ */
20
+ interface AnnotationBounds {
21
+ x: number;
22
+ y: number;
23
+ width: number;
24
+ height: number;
25
+ }
26
+ export interface Annotation {
27
+ type: string;
28
+ content: string;
29
+ author?: string;
30
+ subject?: string;
31
+ color: number[];
32
+ opacity: number;
33
+ bounds?: AnnotationBounds;
34
+ creationDate: Date;
35
+ modificationDate: Date;
36
+ flags: number;
37
+ reply?: string;
38
+ }
39
+ export declare class AnnotationBuilder {
40
+ private _type;
41
+ private _content;
42
+ private _author?;
43
+ private _subject?;
44
+ private _color;
45
+ private _opacity;
46
+ private _bounds?;
47
+ private _creationDate;
48
+ private _modificationDate;
49
+ private _flags;
50
+ private _reply?;
51
+ /**
52
+ * Creates a new AnnotationBuilder instance
53
+ * @private
54
+ */
55
+ private constructor();
56
+ /**
57
+ * Creates a new AnnotationBuilder instance
58
+ * @returns New builder instance
59
+ */
60
+ static create(): AnnotationBuilder;
61
+ /**
62
+ * Creates a text annotation (comment/note)
63
+ * @returns This builder for chaining
64
+ */
65
+ asText(): this;
66
+ /**
67
+ * Creates a highlight annotation
68
+ * @returns This builder for chaining
69
+ */
70
+ asHighlight(): this;
71
+ /**
72
+ * Creates an underline annotation
73
+ * @returns This builder for chaining
74
+ */
75
+ asUnderline(): this;
76
+ /**
77
+ * Creates a strikeout annotation
78
+ * @returns This builder for chaining
79
+ */
80
+ asStrikeout(): this;
81
+ /**
82
+ * Creates a squiggly (wavy underline) annotation
83
+ * @returns This builder for chaining
84
+ */
85
+ asSquiggly(): this;
86
+ /**
87
+ * Sets the annotation type
88
+ * @param type - Annotation type ('text', 'highlight', 'underline', 'strikeout', 'squiggly')
89
+ * @returns This builder for chaining
90
+ */
91
+ type(type: string): this;
92
+ /**
93
+ * Sets the annotation content/text
94
+ * @param content - The annotation content
95
+ * @returns This builder for chaining
96
+ */
97
+ content(content: string): this;
98
+ /**
99
+ * Sets the author of the annotation
100
+ * @param author - The author name
101
+ * @returns This builder for chaining
102
+ */
103
+ author(author: string): this;
104
+ /**
105
+ * Sets the subject/title of the annotation
106
+ * @param subject - The annotation subject
107
+ * @returns This builder for chaining
108
+ */
109
+ subject(subject: string): this;
110
+ /**
111
+ * Sets the color of the annotation (RGB, normalized 0-1)
112
+ * @param rgb - RGB color array [r, g, b] with values 0-1
113
+ * @returns This builder for chaining
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * builder.color([1, 1, 0]); // Yellow
118
+ * builder.color([1, 0, 0]); // Red
119
+ * builder.color([0, 1, 0]); // Green
120
+ * ```
121
+ */
122
+ color(rgb: number[]): this;
123
+ /**
124
+ * Sets the color using common color names
125
+ * @param colorName - Color name (e.g., 'red', 'yellow', 'green', 'blue')
126
+ * @returns This builder for chaining
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * builder.colorName('yellow');
131
+ * builder.colorName('red');
132
+ * ```
133
+ */
134
+ colorName(colorName: string): this;
135
+ /**
136
+ * Sets the opacity/transparency (0-1)
137
+ * @param opacity - Opacity value (0=transparent, 1=opaque)
138
+ * @returns This builder for chaining
139
+ */
140
+ opacity(opacity: number): this;
141
+ /**
142
+ * Sets the bounding box for the annotation
143
+ * @param bounds - Bounding box {x, y, width, height}
144
+ * @returns This builder for chaining
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * builder.bounds({x: 100, y: 200, width: 150, height: 30});
149
+ * ```
150
+ */
151
+ bounds(bounds: AnnotationBounds): this;
152
+ /**
153
+ * Sets the creation date
154
+ * @param date - The creation date
155
+ * @returns This builder for chaining
156
+ */
157
+ creationDate(date: Date): this;
158
+ /**
159
+ * Sets the modification date
160
+ * @param date - The modification date
161
+ * @returns This builder for chaining
162
+ */
163
+ modificationDate(date: Date): this;
164
+ /**
165
+ * Sets the annotation to be printed
166
+ * @returns This builder for chaining
167
+ */
168
+ printable(): this;
169
+ /**
170
+ * Sets the annotation to NOT be printed
171
+ * @returns This builder for chaining
172
+ */
173
+ notPrintable(): this;
174
+ /**
175
+ * Sets whether the annotation is locked (read-only)
176
+ * @param locked - Whether to lock the annotation
177
+ * @returns This builder for chaining
178
+ */
179
+ locked(locked: boolean): this;
180
+ /**
181
+ * Sets a reply to this annotation
182
+ * @param replyContent - Content of the reply
183
+ * @returns This builder for chaining
184
+ */
185
+ reply(replyContent: string): this;
186
+ /**
187
+ * Builds and returns the annotation object
188
+ * @returns Immutable annotation object
189
+ */
190
+ build(): Annotation;
191
+ }
192
+ /**
193
+ * Create a new AnnotationBuilder with static factory
194
+ * @deprecated Use AnnotationBuilder.create() instead
195
+ * @returns New builder instance
196
+ */
197
+ export declare function createAnnotationBuilder(): AnnotationBuilder;
198
+ export {};
199
+ //# sourceMappingURL=annotation-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation-builder.d.ts","sourceRoot":"","sources":["../../src/builders/annotation-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,UAAU,gBAAgB;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,YAAY,EAAE,IAAI,CAAC;IACnB,gBAAgB,EAAE,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB;;;OAGG;IACH,OAAO;IAEP;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,iBAAiB;IAIlC;;;OAGG;IACH,MAAM,IAAI,IAAI;IAKd;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASxB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAW1B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyBlC;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAYtC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQ9B;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQlC;;;OAGG;IACH,SAAS,IAAI,IAAI;IAKjB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAKpB;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAY7B;;;;OAIG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQjC;;;OAGG;IACH,KAAK,IAAI,UAAU;CAmBpB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
@@ -0,0 +1,318 @@
1
+ /**
2
+ * Builder for creating PDF annotations
3
+ *
4
+ * Configures annotation properties like content, appearance, author, and behavior.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { AnnotationBuilder } from 'pdf_oxide';
9
+ *
10
+ * const annotation = AnnotationBuilder.create()
11
+ * .type('highlight')
12
+ * .content('Important section')
13
+ * .author('Reviewer')
14
+ * .color([1, 1, 0]) // Yellow
15
+ * .build();
16
+ *
17
+ * pdf.addAnnotation(annotation);
18
+ * ```
19
+ */
20
+ export class AnnotationBuilder {
21
+ /**
22
+ * Creates a new AnnotationBuilder instance
23
+ * @private
24
+ */
25
+ constructor() {
26
+ this._type = 'text';
27
+ this._content = '';
28
+ this._color = [1, 0, 0]; // Default: red (RGB normalized 0-1)
29
+ this._opacity = 1.0;
30
+ this._creationDate = new Date();
31
+ this._modificationDate = new Date();
32
+ this._flags = 0;
33
+ }
34
+ /**
35
+ * Creates a new AnnotationBuilder instance
36
+ * @returns New builder instance
37
+ */
38
+ static create() {
39
+ return new AnnotationBuilder();
40
+ }
41
+ /**
42
+ * Creates a text annotation (comment/note)
43
+ * @returns This builder for chaining
44
+ */
45
+ asText() {
46
+ this._type = 'text';
47
+ return this;
48
+ }
49
+ /**
50
+ * Creates a highlight annotation
51
+ * @returns This builder for chaining
52
+ */
53
+ asHighlight() {
54
+ this._type = 'highlight';
55
+ return this;
56
+ }
57
+ /**
58
+ * Creates an underline annotation
59
+ * @returns This builder for chaining
60
+ */
61
+ asUnderline() {
62
+ this._type = 'underline';
63
+ return this;
64
+ }
65
+ /**
66
+ * Creates a strikeout annotation
67
+ * @returns This builder for chaining
68
+ */
69
+ asStrikeout() {
70
+ this._type = 'strikeout';
71
+ return this;
72
+ }
73
+ /**
74
+ * Creates a squiggly (wavy underline) annotation
75
+ * @returns This builder for chaining
76
+ */
77
+ asSquiggly() {
78
+ this._type = 'squiggly';
79
+ return this;
80
+ }
81
+ /**
82
+ * Sets the annotation type
83
+ * @param type - Annotation type ('text', 'highlight', 'underline', 'strikeout', 'squiggly')
84
+ * @returns This builder for chaining
85
+ */
86
+ type(type) {
87
+ const validTypes = ['text', 'highlight', 'underline', 'strikeout', 'squiggly', 'note'];
88
+ if (!validTypes.includes(type)) {
89
+ throw new Error(`Invalid annotation type. Must be one of: ${validTypes.join(', ')}`);
90
+ }
91
+ this._type = type;
92
+ return this;
93
+ }
94
+ /**
95
+ * Sets the annotation content/text
96
+ * @param content - The annotation content
97
+ * @returns This builder for chaining
98
+ */
99
+ content(content) {
100
+ if (typeof content !== 'string') {
101
+ throw new Error('Content must be a string');
102
+ }
103
+ this._content = content;
104
+ return this;
105
+ }
106
+ /**
107
+ * Sets the author of the annotation
108
+ * @param author - The author name
109
+ * @returns This builder for chaining
110
+ */
111
+ author(author) {
112
+ if (typeof author !== 'string') {
113
+ throw new Error('Author must be a string');
114
+ }
115
+ this._author = author.length > 0 ? author : undefined;
116
+ return this;
117
+ }
118
+ /**
119
+ * Sets the subject/title of the annotation
120
+ * @param subject - The annotation subject
121
+ * @returns This builder for chaining
122
+ */
123
+ subject(subject) {
124
+ if (typeof subject !== 'string') {
125
+ throw new Error('Subject must be a string');
126
+ }
127
+ this._subject = subject.length > 0 ? subject : undefined;
128
+ return this;
129
+ }
130
+ /**
131
+ * Sets the color of the annotation (RGB, normalized 0-1)
132
+ * @param rgb - RGB color array [r, g, b] with values 0-1
133
+ * @returns This builder for chaining
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * builder.color([1, 1, 0]); // Yellow
138
+ * builder.color([1, 0, 0]); // Red
139
+ * builder.color([0, 1, 0]); // Green
140
+ * ```
141
+ */
142
+ color(rgb) {
143
+ if (!Array.isArray(rgb) || rgb.length !== 3) {
144
+ throw new Error('Color must be an array of 3 RGB values [r, g, b]');
145
+ }
146
+ if (!rgb.every((c) => typeof c === 'number' && c >= 0 && c <= 1)) {
147
+ throw new Error('RGB values must be numbers between 0 and 1');
148
+ }
149
+ this._color = [...rgb];
150
+ return this;
151
+ }
152
+ /**
153
+ * Sets the color using common color names
154
+ * @param colorName - Color name (e.g., 'red', 'yellow', 'green', 'blue')
155
+ * @returns This builder for chaining
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * builder.colorName('yellow');
160
+ * builder.colorName('red');
161
+ * ```
162
+ */
163
+ colorName(colorName) {
164
+ const colors = {
165
+ red: [1, 0, 0],
166
+ green: [0, 1, 0],
167
+ blue: [0, 0, 1],
168
+ yellow: [1, 1, 0],
169
+ cyan: [0, 1, 1],
170
+ magenta: [1, 0, 1],
171
+ white: [1, 1, 1],
172
+ black: [0, 0, 0],
173
+ gray: [0.5, 0.5, 0.5],
174
+ orange: [1, 0.5, 0],
175
+ purple: [0.5, 0, 0.5],
176
+ };
177
+ const lowerColorName = colorName.toLowerCase();
178
+ if (!colors[lowerColorName]) {
179
+ const available = Object.keys(colors).join(', ');
180
+ throw new Error(`Unknown color. Available colors: ${available}`);
181
+ }
182
+ this._color = [...colors[lowerColorName]];
183
+ return this;
184
+ }
185
+ /**
186
+ * Sets the opacity/transparency (0-1)
187
+ * @param opacity - Opacity value (0=transparent, 1=opaque)
188
+ * @returns This builder for chaining
189
+ */
190
+ opacity(opacity) {
191
+ if (typeof opacity !== 'number' || opacity < 0 || opacity > 1) {
192
+ throw new Error('Opacity must be a number between 0 and 1');
193
+ }
194
+ this._opacity = opacity;
195
+ return this;
196
+ }
197
+ /**
198
+ * Sets the bounding box for the annotation
199
+ * @param bounds - Bounding box {x, y, width, height}
200
+ * @returns This builder for chaining
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * builder.bounds({x: 100, y: 200, width: 150, height: 30});
205
+ * ```
206
+ */
207
+ bounds(bounds) {
208
+ if (typeof bounds !== 'object' || bounds === null) {
209
+ throw new Error('Bounds must be an object');
210
+ }
211
+ const { x, y, width, height } = bounds;
212
+ if (![x, y, width, height].every((v) => typeof v === 'number' && v >= 0)) {
213
+ throw new Error('Bounds must have numeric x, y, width, height values >= 0');
214
+ }
215
+ this._bounds = { x, y, width, height };
216
+ return this;
217
+ }
218
+ /**
219
+ * Sets the creation date
220
+ * @param date - The creation date
221
+ * @returns This builder for chaining
222
+ */
223
+ creationDate(date) {
224
+ if (!(date instanceof Date)) {
225
+ throw new Error('creationDate must be a Date object');
226
+ }
227
+ this._creationDate = new Date(date);
228
+ return this;
229
+ }
230
+ /**
231
+ * Sets the modification date
232
+ * @param date - The modification date
233
+ * @returns This builder for chaining
234
+ */
235
+ modificationDate(date) {
236
+ if (!(date instanceof Date)) {
237
+ throw new Error('modificationDate must be a Date object');
238
+ }
239
+ this._modificationDate = new Date(date);
240
+ return this;
241
+ }
242
+ /**
243
+ * Sets the annotation to be printed
244
+ * @returns This builder for chaining
245
+ */
246
+ printable() {
247
+ this._flags |= 4; // Print flag
248
+ return this;
249
+ }
250
+ /**
251
+ * Sets the annotation to NOT be printed
252
+ * @returns This builder for chaining
253
+ */
254
+ notPrintable() {
255
+ this._flags &= ~4; // Clear print flag
256
+ return this;
257
+ }
258
+ /**
259
+ * Sets whether the annotation is locked (read-only)
260
+ * @param locked - Whether to lock the annotation
261
+ * @returns This builder for chaining
262
+ */
263
+ locked(locked) {
264
+ if (typeof locked !== 'boolean') {
265
+ throw new Error('locked must be a boolean');
266
+ }
267
+ if (locked) {
268
+ this._flags |= 128; // Locked flag
269
+ }
270
+ else {
271
+ this._flags &= ~128;
272
+ }
273
+ return this;
274
+ }
275
+ /**
276
+ * Sets a reply to this annotation
277
+ * @param replyContent - Content of the reply
278
+ * @returns This builder for chaining
279
+ */
280
+ reply(replyContent) {
281
+ if (typeof replyContent !== 'string') {
282
+ throw new Error('Reply content must be a string');
283
+ }
284
+ this._reply = replyContent;
285
+ return this;
286
+ }
287
+ /**
288
+ * Builds and returns the annotation object
289
+ * @returns Immutable annotation object
290
+ */
291
+ build() {
292
+ if (!this._bounds && this._type !== 'text') {
293
+ throw new Error(`Annotation type "${this._type}" requires bounds to be set`);
294
+ }
295
+ return {
296
+ type: this._type,
297
+ content: this._content,
298
+ author: this._author,
299
+ subject: this._subject,
300
+ color: [...this._color],
301
+ opacity: this._opacity,
302
+ bounds: this._bounds ? { ...this._bounds } : undefined,
303
+ creationDate: new Date(this._creationDate),
304
+ modificationDate: new Date(this._modificationDate),
305
+ flags: this._flags,
306
+ reply: this._reply,
307
+ };
308
+ }
309
+ }
310
+ /**
311
+ * Create a new AnnotationBuilder with static factory
312
+ * @deprecated Use AnnotationBuilder.create() instead
313
+ * @returns New builder instance
314
+ */
315
+ export function createAnnotationBuilder() {
316
+ return AnnotationBuilder.create();
317
+ }
318
+ //# sourceMappingURL=annotation-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation-builder.js","sourceRoot":"","sources":["../../src/builders/annotation-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Builder for conversion options when converting PDF to other formats
3
+ *
4
+ * Configures how PDFs are converted to Markdown, HTML, or other text formats
5
+ * with options for formatting, image handling, and content extraction.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { ConversionOptionsBuilder } from 'pdf_oxide';
10
+ *
11
+ * const options = ConversionOptionsBuilder.create()
12
+ * .preserveFormatting(true)
13
+ * .includeImages(true)
14
+ * .detectHeadings(true)
15
+ * .detectTables(true)
16
+ * .build();
17
+ *
18
+ * const doc = PdfDocument.open('file.pdf');
19
+ * const markdown = doc.toMarkdown(0, options);
20
+ * ```
21
+ */
22
+ interface PageRangeOptions {
23
+ start: number;
24
+ end: number;
25
+ }
26
+ export interface ConversionOptions {
27
+ preserveFormatting: boolean;
28
+ detectHeadings: boolean;
29
+ detectTables: boolean;
30
+ detectLists: boolean;
31
+ includeImages: boolean;
32
+ imageFormat: string;
33
+ imageQuality: number;
34
+ maxImageDimension: number;
35
+ outputEncoding: string;
36
+ normalizeWhitespace: boolean;
37
+ extractAnnotations: boolean;
38
+ useStructureTree: boolean;
39
+ pageRange?: PageRangeOptions;
40
+ }
41
+ export declare class ConversionOptionsBuilder {
42
+ private _preserveFormatting;
43
+ private _detectHeadings;
44
+ private _detectTables;
45
+ private _detectLists;
46
+ private _includeImages;
47
+ private _imageFormat;
48
+ private _imageQuality;
49
+ private _maxImageDimension;
50
+ private _outputEncoding;
51
+ private _normalizeWhitespace;
52
+ private _extractAnnotations;
53
+ private _useStructureTree;
54
+ private _pageRange?;
55
+ /**
56
+ * Creates a new ConversionOptionsBuilder instance
57
+ * @private
58
+ */
59
+ private constructor();
60
+ /**
61
+ * Creates a new ConversionOptionsBuilder instance
62
+ * @returns New builder instance
63
+ */
64
+ static create(): ConversionOptionsBuilder;
65
+ /**
66
+ * Creates options with default settings optimized for readability
67
+ * @returns Conversion options with default preset
68
+ */
69
+ static default(): ConversionOptions;
70
+ /**
71
+ * Creates options optimized for text-only extraction
72
+ * @returns Conversion options with text-only preset
73
+ */
74
+ static textOnly(): ConversionOptions;
75
+ /**
76
+ * Creates options optimized for maximum quality and detail preservation
77
+ * @returns Conversion options with high-quality preset
78
+ */
79
+ static highQuality(): ConversionOptions;
80
+ /**
81
+ * Creates options for fast, basic conversion
82
+ * @returns Conversion options with fast preset
83
+ */
84
+ static fast(): ConversionOptions;
85
+ preserveFormatting(preserve: boolean): this;
86
+ detectHeadings(detect: boolean): this;
87
+ detectTables(detect: boolean): this;
88
+ detectLists(detect: boolean): this;
89
+ includeImages(include: boolean): this;
90
+ imageFormat(format: string): this;
91
+ imageQuality(quality: number): this;
92
+ maxImageDimension(maxDimension: number): this;
93
+ outputEncoding(encoding: string): this;
94
+ normalizeWhitespace(normalize: boolean): this;
95
+ extractAnnotations(extract: boolean): this;
96
+ useStructureTree(use: boolean): this;
97
+ pageRange(start: number, end: number): this;
98
+ build(): ConversionOptions;
99
+ }
100
+ /**
101
+ * Create a new ConversionOptionsBuilder with static factory
102
+ * @deprecated Use ConversionOptionsBuilder.create() instead
103
+ * @returns New builder instance
104
+ */
105
+ export declare function createConversionOptionsBuilder(): ConversionOptionsBuilder;
106
+ export {};
107
+ //# sourceMappingURL=conversion-options-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion-options-builder.d.ts","sourceRoot":"","sources":["../../src/builders/conversion-options-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAmB;IAEtC;;;OAGG;IACH,OAAO;IAEP;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,wBAAwB;IAIzC;;;OAGG;IACH,MAAM,CAAC,OAAO,IAAI,iBAAiB;IAInC;;;OAGG;IACH,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAUpC;;;OAGG;IACH,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAYvC;;;OAGG;IACH,MAAM,CAAC,IAAI,IAAI,iBAAiB;IAWhC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ3C,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQrC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQnC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQlC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQrC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASjC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQnC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQtC,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ7C,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ1C,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQpC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ3C,KAAK,IAAI,iBAAiB;CAiB3B;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,wBAAwB,CAEzE"}