pdf-oxide 0.3.24 → 0.3.28

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,286 @@
1
+ /**
2
+ * Builder for document metadata configuration
3
+ *
4
+ * Configures document information like title, author, subject, keywords,
5
+ * creation date, and custom properties.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { MetadataBuilder } from 'pdf_oxide';
10
+ *
11
+ * const metadata = MetadataBuilder.create()
12
+ * .title('My Document')
13
+ * .author('John Doe')
14
+ * .subject('Important Information')
15
+ * .keywords(['document', 'important', 'example'])
16
+ * .creator('MyApp v1.0')
17
+ * .build();
18
+ *
19
+ * pdf.setMetadata(metadata);
20
+ * ```
21
+ */
22
+ export class MetadataBuilder {
23
+ /**
24
+ * Creates a new MetadataBuilder instance
25
+ * @private
26
+ */
27
+ constructor() {
28
+ this._keywords = [];
29
+ this._producer = 'PDF Oxide';
30
+ this._creationDate = new Date();
31
+ this._modificationDate = new Date();
32
+ this._customProperties = {};
33
+ }
34
+ /**
35
+ * Creates a new MetadataBuilder instance
36
+ * @returns New builder instance
37
+ */
38
+ static create() {
39
+ return new MetadataBuilder();
40
+ }
41
+ /**
42
+ * Sets the document title
43
+ * @param title - The document title
44
+ * @returns This builder for chaining
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * builder.title('Project Report 2024');
49
+ * ```
50
+ */
51
+ title(title) {
52
+ if (typeof title !== 'string') {
53
+ throw new Error('Title must be a string');
54
+ }
55
+ this._title = title.length > 0 ? title : undefined;
56
+ return this;
57
+ }
58
+ /**
59
+ * Sets the document author
60
+ * @param author - The author name
61
+ * @returns This builder for chaining
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * builder.author('Jane Doe');
66
+ * ```
67
+ */
68
+ author(author) {
69
+ if (typeof author !== 'string') {
70
+ throw new Error('Author must be a string');
71
+ }
72
+ this._author = author.length > 0 ? author : undefined;
73
+ return this;
74
+ }
75
+ /**
76
+ * Sets the document subject
77
+ * @param subject - The document subject
78
+ * @returns This builder for chaining
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * builder.subject('Annual Report');
83
+ * ```
84
+ */
85
+ subject(subject) {
86
+ if (typeof subject !== 'string') {
87
+ throw new Error('Subject must be a string');
88
+ }
89
+ this._subject = subject.length > 0 ? subject : undefined;
90
+ return this;
91
+ }
92
+ /**
93
+ * Sets document keywords
94
+ * @param keywords - Array of keywords
95
+ * @returns This builder for chaining
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * builder.keywords(['report', 'annual', 'financial']);
100
+ * ```
101
+ */
102
+ keywords(keywords) {
103
+ if (!Array.isArray(keywords)) {
104
+ throw new Error('Keywords must be an array');
105
+ }
106
+ if (!keywords.every((k) => typeof k === 'string')) {
107
+ throw new Error('All keywords must be strings');
108
+ }
109
+ this._keywords = [...keywords];
110
+ return this;
111
+ }
112
+ /**
113
+ * Adds a single keyword
114
+ * @param keyword - A keyword to add
115
+ * @returns This builder for chaining
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * builder.addKeyword('Important').addKeyword('Urgent');
120
+ * ```
121
+ */
122
+ addKeyword(keyword) {
123
+ if (typeof keyword !== 'string' || keyword.length === 0) {
124
+ throw new Error('Keyword must be a non-empty string');
125
+ }
126
+ if (!this._keywords.includes(keyword)) {
127
+ this._keywords.push(keyword);
128
+ }
129
+ return this;
130
+ }
131
+ /**
132
+ * Sets the creator application name
133
+ * @param creator - Name of the application that created the document
134
+ * @returns This builder for chaining
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * builder.creator('MyApp v2.1.0');
139
+ * ```
140
+ */
141
+ creator(creator) {
142
+ if (typeof creator !== 'string') {
143
+ throw new Error('Creator must be a string');
144
+ }
145
+ this._creator = creator.length > 0 ? creator : undefined;
146
+ return this;
147
+ }
148
+ /**
149
+ * Sets the PDF producer (usually the library/tool that saved it)
150
+ * @param producer - Name of the PDF producer
151
+ * @returns This builder for chaining
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * builder.producer('PDF Oxide v0.3.2');
156
+ * ```
157
+ */
158
+ producer(producer) {
159
+ if (typeof producer !== 'string') {
160
+ throw new Error('Producer must be a string');
161
+ }
162
+ this._producer = producer.length > 0 ? producer : 'PDF Oxide';
163
+ return this;
164
+ }
165
+ /**
166
+ * Sets the document creation date
167
+ * @param date - The creation date
168
+ * @returns This builder for chaining
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * builder.creationDate(new Date('2024-01-15'));
173
+ * ```
174
+ */
175
+ creationDate(date) {
176
+ if (!(date instanceof Date)) {
177
+ throw new Error('creationDate must be a Date object');
178
+ }
179
+ this._creationDate = new Date(date);
180
+ return this;
181
+ }
182
+ /**
183
+ * Sets the document modification date
184
+ * @param date - The modification date
185
+ * @returns This builder for chaining
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * builder.modificationDate(new Date());
190
+ * ```
191
+ */
192
+ modificationDate(date) {
193
+ if (!(date instanceof Date)) {
194
+ throw new Error('modificationDate must be a Date object');
195
+ }
196
+ this._modificationDate = new Date(date);
197
+ return this;
198
+ }
199
+ /**
200
+ * Sets a custom metadata property
201
+ * @param key - Property key
202
+ * @param value - Property value
203
+ * @returns This builder for chaining
204
+ *
205
+ * @example
206
+ * ```typescript
207
+ * builder.customProperty('Department', 'Engineering');
208
+ * builder.customProperty('Classification', 'Confidential');
209
+ * ```
210
+ */
211
+ customProperty(key, value) {
212
+ if (typeof key !== 'string' || key.length === 0) {
213
+ throw new Error('Property key must be a non-empty string');
214
+ }
215
+ if (typeof value !== 'string') {
216
+ throw new Error('Property value must be a string');
217
+ }
218
+ this._customProperties[key] = value;
219
+ return this;
220
+ }
221
+ /**
222
+ * Sets multiple custom metadata properties
223
+ * @param properties - Object with key-value pairs
224
+ * @returns This builder for chaining
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * builder.customProperties({
229
+ * Department: 'Engineering',
230
+ * Classification: 'Confidential',
231
+ * ProjectCode: 'PROJ-2024-001'
232
+ * });
233
+ * ```
234
+ */
235
+ customProperties(properties) {
236
+ if (typeof properties !== 'object' || properties === null) {
237
+ throw new Error('customProperties must be an object');
238
+ }
239
+ for (const [key, value] of Object.entries(properties)) {
240
+ if (typeof value !== 'string') {
241
+ throw new Error(`Custom property "${key}" value must be a string`);
242
+ }
243
+ this._customProperties[key] = value;
244
+ }
245
+ return this;
246
+ }
247
+ /**
248
+ * Builds and returns the metadata object
249
+ * @returns Immutable metadata object
250
+ *
251
+ * @example
252
+ * ```typescript
253
+ * const metadata = builder.build();
254
+ * ```
255
+ */
256
+ build() {
257
+ return {
258
+ title: this._title,
259
+ author: this._author,
260
+ subject: this._subject,
261
+ keywords: [...this._keywords],
262
+ creator: this._creator,
263
+ producer: this._producer,
264
+ creationDate: new Date(this._creationDate),
265
+ modificationDate: new Date(this._modificationDate),
266
+ customProperties: { ...this._customProperties },
267
+ };
268
+ }
269
+ /**
270
+ * Creates metadata with current timestamp
271
+ * @returns This builder with current modification date
272
+ */
273
+ withCurrentDate() {
274
+ this._modificationDate = new Date();
275
+ return this;
276
+ }
277
+ }
278
+ /**
279
+ * Create a new MetadataBuilder with static factory
280
+ * @deprecated Use MetadataBuilder.create() instead
281
+ * @returns New builder instance
282
+ */
283
+ export function createMetadataBuilder() {
284
+ return MetadataBuilder.create();
285
+ }
286
+ //# sourceMappingURL=metadata-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../src/builders/metadata-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Fluent builder for creating PDF documents with configuration
3
+ *
4
+ * Provides a fluent API for configuring PDF document metadata and options
5
+ * before document creation.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { PdfBuilder } from 'pdf_oxide';
10
+ *
11
+ * const pdf = PdfBuilder.create()
12
+ * .title('My Document')
13
+ * .author('John Doe')
14
+ * .subject('PDF Creation')
15
+ * .keywords(['pdf', 'document', 'example'])
16
+ * .fromMarkdown('# Content\n\nMarkdown text here');
17
+ *
18
+ * pdf.save('output.pdf');
19
+ * ```
20
+ */
21
+ export declare class PdfBuilder {
22
+ private _title?;
23
+ private _author?;
24
+ private _subject?;
25
+ private _keywords;
26
+ private _pageSize?;
27
+ private _margins;
28
+ /**
29
+ * Creates a new PdfBuilder instance
30
+ * @private
31
+ */
32
+ private constructor();
33
+ /**
34
+ * Creates a new PdfBuilder instance
35
+ * @returns New builder instance
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const builder = PdfBuilder.create();
40
+ * ```
41
+ */
42
+ static create(): PdfBuilder;
43
+ /**
44
+ * Sets the document title
45
+ * @param title - The document title
46
+ * @returns This builder for chaining
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * builder.title('My Document Title');
51
+ * ```
52
+ */
53
+ title(title: string): this;
54
+ /**
55
+ * Sets the document author
56
+ * @param author - The author name
57
+ * @returns This builder for chaining
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * builder.author('Jane Doe');
62
+ * ```
63
+ */
64
+ author(author: string): this;
65
+ /**
66
+ * Sets the document subject
67
+ * @param subject - The document subject
68
+ * @returns This builder for chaining
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * builder.subject('Technical Documentation');
73
+ * ```
74
+ */
75
+ subject(subject: string): this;
76
+ /**
77
+ * Sets the document keywords
78
+ * @param keywords - Array of keywords
79
+ * @returns This builder for chaining
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * builder.keywords(['PDF', 'Document', 'Generation']);
84
+ * ```
85
+ */
86
+ keywords(keywords: string[]): this;
87
+ /**
88
+ * Adds a single keyword to the document
89
+ * @param keyword - A keyword to add
90
+ * @returns This builder for chaining
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * builder.addKeyword('Important').addKeyword('Urgent');
95
+ * ```
96
+ */
97
+ addKeyword(keyword: string): this;
98
+ /**
99
+ * Sets the default page size
100
+ * @param pageSize - Page size name (e.g., 'Letter', 'A4', 'Legal')
101
+ * @returns This builder for chaining
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * builder.pageSize('A4');
106
+ * ```
107
+ */
108
+ pageSize(pageSize: string): this;
109
+ /**
110
+ * Sets page margins
111
+ * @param top - Top margin in points
112
+ * @param right - Right margin in points
113
+ * @param bottom - Bottom margin in points
114
+ * @param left - Left margin in points
115
+ * @returns This builder for chaining
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * builder.margins(36, 36, 36, 36); // 0.5 inches on all sides
120
+ * ```
121
+ */
122
+ margins(top: number, right: number, bottom: number, left: number): this;
123
+ /**
124
+ * Creates a PDF document from Markdown content
125
+ * @param markdown - Markdown formatted content
126
+ * @returns The created PDF document
127
+ * @throws PdfError if PDF creation fails
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * const pdf = builder.fromMarkdown('# Title\n\nContent here');
132
+ * ```
133
+ */
134
+ fromMarkdown(markdown: string): any;
135
+ /**
136
+ * Creates a PDF document from HTML content
137
+ * @param html - HTML formatted content
138
+ * @returns The created PDF document
139
+ * @throws PdfError if PDF creation fails
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const pdf = builder.fromHtml('<h1>Title</h1><p>Content</p>');
144
+ * ```
145
+ */
146
+ fromHtml(html: string): any;
147
+ /**
148
+ * Creates a PDF document from plain text content
149
+ * @param text - Plain text content
150
+ * @returns The created PDF document
151
+ * @throws PdfError if PDF creation fails
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const pdf = builder.fromText('Plain text content');
156
+ * ```
157
+ */
158
+ fromText(text: string): any;
159
+ /**
160
+ * Asynchronously creates a PDF document from Markdown content
161
+ * @param markdown - Markdown formatted content
162
+ * @returns Promise that resolves to the created PDF document
163
+ * @throws PdfError if PDF creation fails
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const pdf = await builder.fromMarkdownAsync('# Title\n\nContent');
168
+ * ```
169
+ */
170
+ fromMarkdownAsync(markdown: string): Promise<any>;
171
+ /**
172
+ * Asynchronously creates a PDF document from HTML content
173
+ * @param html - HTML formatted content
174
+ * @returns Promise that resolves to the created PDF document
175
+ * @throws PdfError if PDF creation fails
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * const pdf = await builder.fromHtmlAsync('<h1>Title</h1>');
180
+ * ```
181
+ */
182
+ fromHtmlAsync(html: string): Promise<any>;
183
+ /**
184
+ * Asynchronously creates a PDF document from plain text content
185
+ * @param text - Plain text content
186
+ * @returns Promise that resolves to the created PDF document
187
+ * @throws PdfError if PDF creation fails
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * const pdf = await builder.fromTextAsync('Plain text');
192
+ * ```
193
+ */
194
+ fromTextAsync(text: string): Promise<any>;
195
+ /**
196
+ * Gets the current configuration as a plain object
197
+ * @returns Configuration object with title, author, subject, keywords
198
+ *
199
+ * @private
200
+ */
201
+ private _getConfiguration;
202
+ /**
203
+ * Applies builder configuration to a PDF document
204
+ * @param pdf - The PDF document to configure
205
+ * @private
206
+ */
207
+ private _applyConfiguration;
208
+ }
209
+ /**
210
+ * Create a new PdfBuilder with static factory
211
+ * @deprecated Use PdfBuilder.create() instead
212
+ * @returns New builder instance
213
+ */
214
+ export declare function createPdfBuilder(): PdfBuilder;
215
+ //# sourceMappingURL=pdf-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-builder.d.ts","sourceRoot":"","sources":["../../src/builders/pdf-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAgBH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAKd;IAEF;;;OAGG;IACH,OAAO;IAEP;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,IAAI,UAAU;IAI3B;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ1B;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAWlC;;;;;;;;;OASG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAShC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQvE;;;;;;;;;;OAUG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IAanC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAY3B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAY3B;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYvD;;;;;;;;;;OAUG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAY/C;;;;;;;;;;OAUG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAY/C;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAe5B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C"}