pdf-lite 1.0.4 → 1.0.6

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 (181) hide show
  1. package/EXAMPLES.md +37 -87
  2. package/README.md +104 -144
  3. package/dist/acroform/acroform-manager.d.ts +49 -0
  4. package/dist/acroform/acroform-manager.js +215 -0
  5. package/dist/acroform/index.d.ts +1 -0
  6. package/dist/acroform/index.js +1 -0
  7. package/dist/core/generators.d.ts +2 -2
  8. package/dist/core/generators.js +3 -3
  9. package/dist/core/incremental-parser.d.ts +1 -1
  10. package/dist/core/incremental-parser.js +1 -1
  11. package/dist/core/objects/pdf-array.d.ts +3 -3
  12. package/dist/core/objects/pdf-array.js +4 -4
  13. package/dist/core/objects/pdf-boolean.d.ts +2 -2
  14. package/dist/core/objects/pdf-boolean.js +2 -2
  15. package/dist/core/objects/pdf-comment.d.ts +3 -3
  16. package/dist/core/objects/pdf-comment.js +4 -4
  17. package/dist/core/objects/pdf-date.d.ts +1 -1
  18. package/dist/core/objects/pdf-date.js +1 -1
  19. package/dist/core/objects/pdf-dictionary.d.ts +3 -3
  20. package/dist/core/objects/pdf-dictionary.js +5 -5
  21. package/dist/core/objects/pdf-hexadecimal.d.ts +3 -3
  22. package/dist/core/objects/pdf-hexadecimal.js +6 -6
  23. package/dist/core/objects/pdf-indirect-object.d.ts +5 -5
  24. package/dist/core/objects/pdf-indirect-object.js +9 -9
  25. package/dist/core/objects/pdf-name.d.ts +2 -2
  26. package/dist/core/objects/pdf-name.js +2 -2
  27. package/dist/core/objects/pdf-null.d.ts +2 -2
  28. package/dist/core/objects/pdf-null.js +2 -2
  29. package/dist/core/objects/pdf-number.d.ts +3 -3
  30. package/dist/core/objects/pdf-number.js +3 -3
  31. package/dist/core/objects/pdf-object-reference.d.ts +2 -2
  32. package/dist/core/objects/pdf-object-reference.js +2 -2
  33. package/dist/core/objects/pdf-start-xref.d.ts +4 -4
  34. package/dist/core/objects/pdf-start-xref.js +4 -4
  35. package/dist/core/objects/pdf-stream.d.ts +9 -8
  36. package/dist/core/objects/pdf-stream.js +39 -26
  37. package/dist/core/objects/pdf-string.d.ts +3 -3
  38. package/dist/core/objects/pdf-string.js +4 -4
  39. package/dist/core/objects/pdf-trailer.d.ts +8 -8
  40. package/dist/core/objects/pdf-trailer.js +6 -6
  41. package/dist/core/objects/pdf-xref-table.d.ts +7 -7
  42. package/dist/core/objects/pdf-xref-table.js +8 -8
  43. package/dist/core/serializer.d.ts +3 -3
  44. package/dist/core/serializer.js +2 -2
  45. package/dist/core/streams/object-stream.d.ts +3 -3
  46. package/dist/core/streams/object-stream.js +2 -2
  47. package/dist/core/tokens/boolean-token.d.ts +1 -1
  48. package/dist/core/tokens/boolean-token.js +1 -1
  49. package/dist/core/tokens/byte-offset-token.d.ts +2 -2
  50. package/dist/core/tokens/byte-offset-token.js +2 -2
  51. package/dist/core/tokens/comment-token.d.ts +2 -2
  52. package/dist/core/tokens/comment-token.js +4 -4
  53. package/dist/core/tokens/end-array-token.d.ts +1 -1
  54. package/dist/core/tokens/end-array-token.js +2 -2
  55. package/dist/core/tokens/end-dictionary-token.d.ts +1 -1
  56. package/dist/core/tokens/end-dictionary-token.js +2 -2
  57. package/dist/core/tokens/end-object-token.d.ts +1 -1
  58. package/dist/core/tokens/end-object-token.js +2 -2
  59. package/dist/core/tokens/end-stream-token.d.ts +2 -2
  60. package/dist/core/tokens/end-stream-token.js +2 -2
  61. package/dist/core/tokens/hexadecimal-token.d.ts +2 -2
  62. package/dist/core/tokens/hexadecimal-token.js +2 -2
  63. package/dist/core/tokens/name-token.d.ts +1 -1
  64. package/dist/core/tokens/name-token.js +2 -2
  65. package/dist/core/tokens/null-token.d.ts +1 -1
  66. package/dist/core/tokens/null-token.js +2 -2
  67. package/dist/core/tokens/number-token.d.ts +3 -3
  68. package/dist/core/tokens/number-token.js +3 -3
  69. package/dist/core/tokens/object-reference-token.d.ts +1 -1
  70. package/dist/core/tokens/object-reference-token.js +2 -2
  71. package/dist/core/tokens/start-array-token.d.ts +1 -1
  72. package/dist/core/tokens/start-array-token.js +2 -2
  73. package/dist/core/tokens/start-dictionary-token.d.ts +1 -1
  74. package/dist/core/tokens/start-dictionary-token.js +2 -2
  75. package/dist/core/tokens/start-object-token.d.ts +1 -1
  76. package/dist/core/tokens/start-object-token.js +2 -2
  77. package/dist/core/tokens/start-stream-token.d.ts +3 -3
  78. package/dist/core/tokens/start-stream-token.js +3 -3
  79. package/dist/core/tokens/start-xref-token.d.ts +1 -1
  80. package/dist/core/tokens/start-xref-token.js +2 -2
  81. package/dist/core/tokens/stream-chunk-token.d.ts +2 -2
  82. package/dist/core/tokens/stream-chunk-token.js +1 -1
  83. package/dist/core/tokens/string-token.d.ts +2 -2
  84. package/dist/core/tokens/string-token.js +3 -3
  85. package/dist/core/tokens/token.d.ts +1 -1
  86. package/dist/core/tokens/token.js +1 -1
  87. package/dist/core/tokens/trailer-token.d.ts +1 -1
  88. package/dist/core/tokens/trailer-token.js +2 -2
  89. package/dist/core/tokens/whitespace-token.d.ts +2 -2
  90. package/dist/core/tokens/whitespace-token.js +1 -1
  91. package/dist/core/tokens/xref-table-entry-token.d.ts +3 -3
  92. package/dist/core/tokens/xref-table-entry-token.js +2 -2
  93. package/dist/core/tokens/xref-table-section-start-token.d.ts +2 -2
  94. package/dist/core/tokens/xref-table-section-start-token.js +3 -3
  95. package/dist/core/tokens/xref-table-start-token.d.ts +1 -1
  96. package/dist/core/tokens/xref-table-start-token.js +2 -2
  97. package/dist/crypto/key-derivation/key-derivation-aes256.d.ts +1 -1
  98. package/dist/crypto/key-derivation/key-derivation-aes256.js +2 -2
  99. package/dist/crypto/key-gen/key-gen-rc4-128.d.ts +1 -1
  100. package/dist/crypto/key-gen/key-gen-rc4-128.js +5 -5
  101. package/dist/crypto/types.d.ts +1 -1
  102. package/dist/filters/asciihex.d.ts +1 -1
  103. package/dist/filters/asciihex.js +2 -2
  104. package/dist/filters/lzw.d.ts +1 -1
  105. package/dist/filters/types.d.ts +1 -1
  106. package/dist/pdf/pdf-document.d.ts +28 -14
  107. package/dist/pdf/pdf-document.js +60 -21
  108. package/dist/pdf/pdf-reader.d.ts +3 -3
  109. package/dist/pdf/pdf-reader.js +2 -2
  110. package/dist/pdf/pdf-revision.d.ts +5 -5
  111. package/dist/pdf/pdf-revision.js +4 -4
  112. package/dist/pdf/pdf-xref-lookup.d.ts +7 -7
  113. package/dist/pdf/pdf-xref-lookup.js +11 -10
  114. package/dist/security/crypt-filters/aesv2.d.ts +2 -2
  115. package/dist/security/crypt-filters/aesv2.js +2 -2
  116. package/dist/security/crypt-filters/aesv3.d.ts +2 -2
  117. package/dist/security/crypt-filters/aesv3.js +2 -2
  118. package/dist/security/crypt-filters/base.d.ts +4 -4
  119. package/dist/security/crypt-filters/base.js +3 -3
  120. package/dist/security/crypt-filters/identity.d.ts +2 -2
  121. package/dist/security/crypt-filters/identity.js +1 -1
  122. package/dist/security/crypt-filters/v2.d.ts +1 -1
  123. package/dist/security/crypt-filters/v2.js +1 -1
  124. package/dist/security/handlers/base.d.ts +4 -4
  125. package/dist/security/handlers/base.js +12 -12
  126. package/dist/security/handlers/pubSec.d.ts +3 -3
  127. package/dist/security/handlers/pubSec.js +10 -10
  128. package/dist/security/handlers/utils.d.ts +4 -4
  129. package/dist/security/handlers/utils.js +12 -12
  130. package/dist/security/handlers/v1.d.ts +4 -4
  131. package/dist/security/handlers/v1.js +7 -7
  132. package/dist/security/handlers/v2.d.ts +3 -3
  133. package/dist/security/handlers/v2.js +5 -5
  134. package/dist/security/handlers/v4.d.ts +6 -6
  135. package/dist/security/handlers/v4.js +11 -11
  136. package/dist/security/handlers/v5.d.ts +5 -5
  137. package/dist/security/handlers/v5.js +9 -9
  138. package/dist/security/types.d.ts +9 -9
  139. package/dist/signing/document-security-store.d.ts +11 -11
  140. package/dist/signing/document-security-store.js +4 -4
  141. package/dist/signing/signatures/adbe-pkcs7-detached.d.ts +4 -4
  142. package/dist/signing/signatures/adbe-pkcs7-detached.js +11 -11
  143. package/dist/signing/signatures/adbe-pkcs7-sha1.d.ts +4 -4
  144. package/dist/signing/signatures/adbe-pkcs7-sha1.js +12 -12
  145. package/dist/signing/signatures/adbe-x509-rsa-sha1.d.ts +4 -4
  146. package/dist/signing/signatures/adbe-x509-rsa-sha1.js +8 -8
  147. package/dist/signing/signatures/base.d.ts +5 -5
  148. package/dist/signing/signatures/base.js +11 -11
  149. package/dist/signing/signatures/etsi-cades-detached.d.ts +4 -4
  150. package/dist/signing/signatures/etsi-cades-detached.js +17 -17
  151. package/dist/signing/signatures/etsi-rfc3161.d.ts +2 -2
  152. package/dist/signing/signatures/etsi-rfc3161.js +9 -9
  153. package/dist/signing/signatures/index.d.ts +6 -6
  154. package/dist/signing/signatures/index.js +6 -6
  155. package/dist/signing/signer.d.ts +3 -3
  156. package/dist/signing/signer.js +10 -10
  157. package/dist/signing/types.d.ts +7 -7
  158. package/dist/signing/utils.d.ts +2 -2
  159. package/dist/signing/utils.js +1 -1
  160. package/dist/utils/algos.js +1 -1
  161. package/dist/utils/bytesToHex.d.ts +1 -1
  162. package/dist/utils/bytesToHex.js +2 -2
  163. package/dist/utils/bytesToHexBytes.d.ts +1 -1
  164. package/dist/utils/bytesToString.d.ts +1 -1
  165. package/dist/utils/concatUint8Arrays.d.ts +1 -1
  166. package/dist/utils/escapeString.d.ts +1 -1
  167. package/dist/utils/escapeString.js +1 -1
  168. package/dist/utils/hexBytesToBytes.d.ts +1 -1
  169. package/dist/utils/hexBytesToString.d.ts +1 -1
  170. package/dist/utils/hexToBytes.d.ts +1 -1
  171. package/dist/utils/hexToBytes.js +2 -2
  172. package/dist/utils/padBytes.d.ts +1 -1
  173. package/dist/utils/replaceInBuffer.d.ts +1 -1
  174. package/dist/utils/stringToBytes.d.ts +1 -1
  175. package/dist/utils/stringToHexBytes.d.ts +1 -1
  176. package/dist/utils/unescapeString.d.ts +1 -1
  177. package/dist/xfa/index.d.ts +1 -0
  178. package/dist/xfa/index.js +1 -0
  179. package/dist/xfa/xfa-manager.d.ts +44 -0
  180. package/dist/xfa/xfa-manager.js +138 -0
  181. package/package.json +3 -3
@@ -0,0 +1,215 @@
1
+ import { PdfDictionary } from '../core/objects/pdf-dictionary.js';
2
+ import { PdfArray } from '../core/objects/pdf-array.js';
3
+ import { PdfString } from '../core/objects/pdf-string.js';
4
+ import { PdfObjectReference } from '../core/objects/pdf-object-reference.js';
5
+ import { PdfIndirectObject } from '../core/objects/pdf-indirect-object.js';
6
+ import { PdfName } from '../core/objects/pdf-name.js';
7
+ import { PdfBoolean } from '../core/objects/pdf-boolean.js';
8
+ /**
9
+ * Manages AcroForm fields in PDF documents.
10
+ * Provides methods to read and write form field values.
11
+ */
12
+ export class PdfAcroFormManager {
13
+ document;
14
+ _acroForm;
15
+ constructor(document) {
16
+ this.document = document;
17
+ }
18
+ /**
19
+ * Checks if the document contains AcroForm fields.
20
+ * @returns True if the document has AcroForm fields, false otherwise
21
+ */
22
+ async hasAcroForm() {
23
+ try {
24
+ const acroForm = await this.getAcroForm();
25
+ return acroForm !== null;
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
31
+ /**
32
+ * Gets all form field values as a key-value map.
33
+ * @returns Object with field names as keys and values as strings
34
+ */
35
+ async getFieldValues() {
36
+ const acroForm = await this.getAcroForm();
37
+ if (!acroForm)
38
+ return null;
39
+ const fields = acroForm.get('Fields')?.as(PdfArray);
40
+ if (!fields)
41
+ return null;
42
+ const values = {};
43
+ await this.collectFieldValues(fields, values);
44
+ return values;
45
+ }
46
+ /**
47
+ * Sets a form field value by field name.
48
+ * @param fieldName The name of the field to set
49
+ * @param value The value to set
50
+ * @throws Error if the field is not found
51
+ */
52
+ async setFieldValues(newFields) {
53
+ const acroFormObject = await this.getAcroFormObject();
54
+ if (!acroFormObject) {
55
+ throw new Error('Document does not contain AcroForm');
56
+ }
57
+ const acroForm = acroFormObject.content.as(PdfDictionary);
58
+ const fields = acroForm.get('Fields')?.as(PdfArray);
59
+ if (!fields) {
60
+ throw new Error('AcroForm has no fields');
61
+ }
62
+ const isIncremental = this.document.isIncremental();
63
+ this.document.setIncremental(true);
64
+ // Update the AcroForm dictionary with NeedAppearances flag
65
+ const updatedAcroForm = new PdfIndirectObject({
66
+ ...acroFormObject,
67
+ content: acroFormObject.content.clone(),
68
+ });
69
+ const updatedAcroFormDict = updatedAcroForm.content.as(PdfDictionary);
70
+ // Let the PDF viewer know that appearances need to be regenerated
71
+ updatedAcroFormDict.set('NeedAppearances', new PdfBoolean(true));
72
+ await this.document.commit(updatedAcroForm);
73
+ for (const [fieldName, value] of Object.entries(newFields)) {
74
+ const fieldObject = await this.findFieldByName(fields, fieldName);
75
+ if (!fieldObject) {
76
+ throw new Error(`Field '${fieldName}' not found`);
77
+ }
78
+ const updatedField = new PdfIndirectObject({
79
+ ...fieldObject,
80
+ content: fieldObject.content.clone(),
81
+ });
82
+ const fieldDict = updatedField.content.as(PdfDictionary);
83
+ // Set appearance state (AS) for button fields (checkboxes, radio buttons)
84
+ // Button fields use PdfName for both V and AS, text fields use PdfString
85
+ const fieldType = fieldDict.get('FT')?.as(PdfName)?.value;
86
+ if (fieldType === 'Btn') {
87
+ fieldDict.set('V', new PdfName(value));
88
+ fieldDict.set('AS', new PdfName(value));
89
+ }
90
+ else {
91
+ fieldDict.set('V', new PdfString(value));
92
+ }
93
+ await this.document.commit(updatedField);
94
+ }
95
+ this.document.setIncremental(isIncremental);
96
+ }
97
+ /**
98
+ * Gets the AcroForm indirect object from the document catalog.
99
+ * @returns The AcroForm indirect object or null if not found
100
+ */
101
+ async getAcroFormObject() {
102
+ const catalog = this.document.rootDictionary;
103
+ if (!catalog)
104
+ return null;
105
+ const acroFormRef = catalog.get('AcroForm');
106
+ if (!acroFormRef)
107
+ return null;
108
+ if (acroFormRef instanceof PdfObjectReference) {
109
+ const acroFormObject = await this.document.readObject({
110
+ objectNumber: acroFormRef.objectNumber,
111
+ generationNumber: acroFormRef.generationNumber,
112
+ });
113
+ if (!acroFormObject)
114
+ return null;
115
+ return acroFormObject;
116
+ }
117
+ return null;
118
+ }
119
+ /**
120
+ * Gets the AcroForm dictionary from the document catalog.
121
+ * @returns The AcroForm dictionary or null if not found
122
+ */
123
+ async getAcroForm() {
124
+ if (this._acroForm) {
125
+ return this._acroForm;
126
+ }
127
+ const acroFormObject = await this.getAcroFormObject();
128
+ if (acroFormObject) {
129
+ this._acroForm = acroFormObject.content.as(PdfDictionary);
130
+ return this._acroForm;
131
+ }
132
+ const catalog = this.document.rootDictionary;
133
+ if (!catalog)
134
+ return null;
135
+ const acroFormRef = catalog.get('AcroForm');
136
+ if (acroFormRef instanceof PdfDictionary) {
137
+ this._acroForm = acroFormRef;
138
+ return this._acroForm;
139
+ }
140
+ return null;
141
+ }
142
+ /**
143
+ * Recursively collects field values from the field tree.
144
+ */
145
+ async collectFieldValues(fields, values, parentName = '') {
146
+ for (const fieldRef of fields.items) {
147
+ if (!(fieldRef instanceof PdfObjectReference))
148
+ continue;
149
+ // Check if we have a modified version cached
150
+ const fieldObject = await this.document.readObject({
151
+ objectNumber: fieldRef.objectNumber,
152
+ generationNumber: fieldRef.generationNumber,
153
+ });
154
+ if (!fieldObject)
155
+ continue;
156
+ const fieldDict = fieldObject.content.as(PdfDictionary);
157
+ const fieldName = this.getFieldName(fieldDict, parentName);
158
+ // Get field value (return empty string if no value set)
159
+ const value = fieldDict.get('V');
160
+ if (value instanceof PdfString) {
161
+ values[fieldName] = value.value;
162
+ }
163
+ else if (value instanceof PdfName) {
164
+ values[fieldName] = value.value;
165
+ }
166
+ else if (fieldName) {
167
+ // Include empty fields
168
+ values[fieldName] = '';
169
+ }
170
+ // Process child fields (Kids)
171
+ const kids = fieldDict.get('Kids')?.as(PdfArray);
172
+ if (kids) {
173
+ await this.collectFieldValues(kids, values, fieldName);
174
+ }
175
+ }
176
+ }
177
+ /**
178
+ * Finds a field by its fully qualified name.
179
+ */
180
+ async findFieldByName(fields, targetName, parentName = '') {
181
+ for (const fieldRef of fields.items) {
182
+ if (!(fieldRef instanceof PdfObjectReference))
183
+ continue;
184
+ // Check if we have a modified version cached
185
+ const fieldObject = await this.document.readObject({
186
+ objectNumber: fieldRef.objectNumber,
187
+ generationNumber: fieldRef.generationNumber,
188
+ });
189
+ if (!fieldObject)
190
+ continue;
191
+ const fieldDict = fieldObject.content.as(PdfDictionary);
192
+ const fieldName = this.getFieldName(fieldDict, parentName);
193
+ if (fieldName === targetName) {
194
+ return fieldObject;
195
+ }
196
+ // Search in child fields (Kids)
197
+ const kids = fieldDict.get('Kids')?.as(PdfArray);
198
+ if (kids) {
199
+ const found = await this.findFieldByName(kids, targetName, fieldName);
200
+ if (found)
201
+ return found;
202
+ }
203
+ }
204
+ return null;
205
+ }
206
+ /**
207
+ * Gets the fully qualified field name.
208
+ */
209
+ getFieldName(fieldDict, parentName) {
210
+ const partialName = fieldDict.get('T')?.as(PdfString)?.value ?? '';
211
+ if (!parentName)
212
+ return partialName;
213
+ return `${parentName}.${partialName}`;
214
+ }
215
+ }
@@ -0,0 +1 @@
1
+ export { PdfAcroFormManager } from './acroform-manager.js';
@@ -0,0 +1 @@
1
+ export { PdfAcroFormManager } from './acroform-manager.js';
@@ -1,5 +1,5 @@
1
- import { ByteArray } from '../types';
2
- import { PdfObject } from './objects/pdf-object';
1
+ import { ByteArray } from '../types.js';
2
+ import { PdfObject } from './objects/pdf-object.js';
3
3
  /**
4
4
  * Converts an iterable of byte arrays into PDF objects.
5
5
  * Processes bytes through tokenization and decoding.
@@ -1,6 +1,6 @@
1
- import { stringToBytes } from '../utils/stringToBytes';
2
- import { PdfDecoder } from './decoder';
3
- import { PdfByteStreamTokeniser } from './tokeniser';
1
+ import { stringToBytes } from '../utils/stringToBytes.js';
2
+ import { PdfDecoder } from './decoder.js';
3
+ import { PdfByteStreamTokeniser } from './tokeniser.js';
4
4
  /**
5
5
  * Converts an iterable of byte arrays into PDF objects.
6
6
  * Processes bytes through tokenization and decoding.
@@ -1,4 +1,4 @@
1
- import { Parser } from './parser';
1
+ import { Parser } from './parser.js';
2
2
  /**
3
3
  * Error thrown when the parser needs more input to continue parsing.
4
4
  */
@@ -1,4 +1,4 @@
1
- import { Parser } from './parser';
1
+ import { Parser } from './parser.js';
2
2
  /**
3
3
  * Error thrown when the parser needs more input to continue parsing.
4
4
  */
@@ -1,12 +1,12 @@
1
- import { PdfWhitespaceToken } from '../tokens/whitespace-token';
2
- import { PdfObject } from './pdf-object';
1
+ import { PdfWhitespaceToken } from '../tokens/whitespace-token.js';
2
+ import { PdfObject } from './pdf-object.js';
3
3
  export declare class PdfArray<T extends PdfObject = PdfObject> extends PdfObject {
4
4
  items: T[];
5
5
  innerTokens: PdfWhitespaceToken[];
6
6
  constructor(items?: T[]);
7
7
  get length(): number;
8
8
  push(item: T): void;
9
- protected tokenize(): import("..").PdfToken[];
9
+ protected tokenize(): import("../index.js").PdfToken[];
10
10
  clone(): this;
11
11
  isModified(): boolean;
12
12
  }
@@ -1,7 +1,7 @@
1
- import { PdfEndArrayToken } from '../tokens/end-array-token';
2
- import { PdfStartArrayToken } from '../tokens/start-array-token';
3
- import { PdfWhitespaceToken } from '../tokens/whitespace-token';
4
- import { PdfObject } from './pdf-object';
1
+ import { PdfEndArrayToken } from '../tokens/end-array-token.js';
2
+ import { PdfStartArrayToken } from '../tokens/start-array-token.js';
3
+ import { PdfWhitespaceToken } from '../tokens/whitespace-token.js';
4
+ import { PdfObject } from './pdf-object.js';
5
5
  export class PdfArray extends PdfObject {
6
6
  items;
7
7
  innerTokens = [];
@@ -1,5 +1,5 @@
1
- import { PdfBooleanToken } from '../tokens/boolean-token';
2
- import { PdfObject } from './pdf-object';
1
+ import { PdfBooleanToken } from '../tokens/boolean-token.js';
2
+ import { PdfObject } from './pdf-object.js';
3
3
  export declare class PdfBoolean extends PdfObject {
4
4
  value: boolean;
5
5
  constructor(value: boolean);
@@ -1,5 +1,5 @@
1
- import { PdfBooleanToken } from '../tokens/boolean-token';
2
- import { PdfObject } from './pdf-object';
1
+ import { PdfBooleanToken } from '../tokens/boolean-token.js';
2
+ import { PdfObject } from './pdf-object.js';
3
3
  export class PdfBoolean extends PdfObject {
4
4
  value;
5
5
  constructor(value) {
@@ -1,6 +1,6 @@
1
- import { ByteArray } from '../../types';
2
- import { PdfCommentToken } from '../tokens/comment-token';
3
- import { PdfObject } from './pdf-object';
1
+ import { ByteArray } from '../../types.js';
2
+ import { PdfCommentToken } from '../tokens/comment-token.js';
3
+ import { PdfObject } from './pdf-object.js';
4
4
  export declare class PdfComment extends PdfObject {
5
5
  static EOF: PdfComment;
6
6
  /**
@@ -1,7 +1,7 @@
1
- import { stringToBytes } from '../../utils/stringToBytes';
2
- import { PdfCommentToken } from '../tokens/comment-token';
3
- import { PdfWhitespaceToken } from '../tokens/whitespace-token';
4
- import { PdfObject } from './pdf-object';
1
+ import { stringToBytes } from '../../utils/stringToBytes.js';
2
+ import { PdfCommentToken } from '../tokens/comment-token.js';
3
+ import { PdfWhitespaceToken } from '../tokens/whitespace-token.js';
4
+ import { PdfObject } from './pdf-object.js';
5
5
  export class PdfComment extends PdfObject {
6
6
  static EOF = new PdfComment('%EOF');
7
7
  /**
@@ -1,4 +1,4 @@
1
- import { PdfString } from './pdf-string';
1
+ import { PdfString } from './pdf-string.js';
2
2
  export declare class PdfDate extends PdfString {
3
3
  constructor(date: Date);
4
4
  get date(): Date;
@@ -1,4 +1,4 @@
1
- import { PdfString } from './pdf-string';
1
+ import { PdfString } from './pdf-string.js';
2
2
  export class PdfDate extends PdfString {
3
3
  constructor(date) {
4
4
  const pad = (n, width = 2) => n.toString().padStart(width, '0');
@@ -1,6 +1,6 @@
1
- import { PdfToken } from '../tokens/token';
2
- import { PdfName } from './pdf-name';
3
- import { PdfObject } from './pdf-object';
1
+ import { PdfToken } from '../tokens/token.js';
2
+ import { PdfName } from './pdf-name.js';
3
+ import { PdfObject } from './pdf-object.js';
4
4
  export type PdfDictionaryEntry = PdfObject | undefined;
5
5
  export type PdfDictionaryEntries = Record<string, PdfDictionaryEntry>;
6
6
  export type PdfDictionaryMap = Map<PdfName, PdfObject | undefined>;
@@ -1,8 +1,8 @@
1
- import { PdfEndDictionaryToken } from '../tokens/end-dictionary-token';
2
- import { PdfStartDictionaryToken } from '../tokens/start-dictionary-token';
3
- import { PdfWhitespaceToken } from '../tokens/whitespace-token';
4
- import { PdfName } from './pdf-name';
5
- import { PdfObject } from './pdf-object';
1
+ import { PdfEndDictionaryToken } from '../tokens/end-dictionary-token.js';
2
+ import { PdfStartDictionaryToken } from '../tokens/start-dictionary-token.js';
3
+ import { PdfWhitespaceToken } from '../tokens/whitespace-token.js';
4
+ import { PdfName } from './pdf-name.js';
5
+ import { PdfObject } from './pdf-object.js';
6
6
  export class PdfDictionary extends PdfObject {
7
7
  #entries;
8
8
  innerTokens = [];
@@ -1,6 +1,6 @@
1
- import { ByteArray } from '../../types';
2
- import { PdfHexadecimalToken } from '../tokens/hexadecimal-token';
3
- import { PdfObject } from './pdf-object';
1
+ import { ByteArray } from '../../types.js';
2
+ import { PdfHexadecimalToken } from '../tokens/hexadecimal-token.js';
3
+ import { PdfObject } from './pdf-object.js';
4
4
  export declare class PdfHexadecimal extends PdfObject {
5
5
  /**
6
6
  * The raw byte value represented by this hexadecimal object.
@@ -1,9 +1,9 @@
1
- import { bytesToHexBytes } from '../../utils/bytesToHexBytes';
2
- import { bytesToString } from '../../utils/bytesToString';
3
- import { hexBytesToBytes } from '../../utils/hexBytesToBytes';
4
- import { stringToBytes } from '../../utils/stringToBytes';
5
- import { PdfHexadecimalToken } from '../tokens/hexadecimal-token';
6
- import { PdfObject } from './pdf-object';
1
+ import { bytesToHexBytes } from '../../utils/bytesToHexBytes.js';
2
+ import { bytesToString } from '../../utils/bytesToString.js';
3
+ import { hexBytesToBytes } from '../../utils/hexBytesToBytes.js';
4
+ import { stringToBytes } from '../../utils/stringToBytes.js';
5
+ import { PdfHexadecimalToken } from '../tokens/hexadecimal-token.js';
6
+ import { PdfObject } from './pdf-object.js';
7
7
  export class PdfHexadecimal extends PdfObject {
8
8
  /**
9
9
  * The raw byte value represented by this hexadecimal object.
@@ -1,7 +1,7 @@
1
- import { PdfNull } from './pdf-null';
2
- import { PdfObject } from './pdf-object';
3
- import { PdfObjectReference } from './pdf-object-reference';
4
- import { Ref } from '../ref';
1
+ import { PdfNull } from './pdf-null.js';
2
+ import { PdfObject } from './pdf-object.js';
3
+ import { PdfObjectReference } from './pdf-object-reference.js';
4
+ import { Ref } from '../ref.js';
5
5
  export declare class PdfIndirectObject<T extends PdfObject = PdfObject> extends PdfObjectReference {
6
6
  static readonly MAX_ORDER_INDEX = 2147483647;
7
7
  content: T;
@@ -20,7 +20,7 @@ export declare class PdfIndirectObject<T extends PdfObject = PdfObject> extends
20
20
  static createPlaceholder<T extends PdfObject>(objectNumber?: number, generationNumber?: number, content?: T): PdfIndirectObject<T extends unknown ? PdfNull : T>;
21
21
  inPdf(): boolean;
22
22
  matchesReference(ref?: PdfObjectReference): boolean;
23
- protected tokenize(): import("..").PdfToken[];
23
+ protected tokenize(): import("../index.js").PdfToken[];
24
24
  clone(): this;
25
25
  order(): number;
26
26
  isModified(): boolean;
@@ -1,12 +1,12 @@
1
- import { PdfEndObjectToken } from '../tokens/end-object-token';
2
- import { PdfStartObjectToken } from '../tokens/start-object-token';
3
- import { PdfWhitespaceToken } from '../tokens/whitespace-token';
4
- import { PdfNull } from './pdf-null';
5
- import { PdfObject } from './pdf-object';
6
- import { PdfObjectReference } from './pdf-object-reference';
7
- import { PdfStream } from './pdf-stream';
8
- import { Ref } from '../ref';
9
- import { PdfByteOffsetToken } from '../tokens/byte-offset-token';
1
+ import { PdfEndObjectToken } from '../tokens/end-object-token.js';
2
+ import { PdfStartObjectToken } from '../tokens/start-object-token.js';
3
+ import { PdfWhitespaceToken } from '../tokens/whitespace-token.js';
4
+ import { PdfNull } from './pdf-null.js';
5
+ import { PdfObject } from './pdf-object.js';
6
+ import { PdfObjectReference } from './pdf-object-reference.js';
7
+ import { PdfStream } from './pdf-stream.js';
8
+ import { Ref } from '../ref.js';
9
+ import { PdfByteOffsetToken } from '../tokens/byte-offset-token.js';
10
10
  export class PdfIndirectObject extends PdfObjectReference {
11
11
  static MAX_ORDER_INDEX = 2147483647;
12
12
  content;
@@ -1,5 +1,5 @@
1
- import { PdfNameToken } from '../tokens/name-token';
2
- import { PdfObject } from './pdf-object';
1
+ import { PdfNameToken } from '../tokens/name-token.js';
2
+ import { PdfObject } from './pdf-object.js';
3
3
  export declare class PdfName<T extends string = string> extends PdfObject {
4
4
  value: T;
5
5
  constructor(value: T);
@@ -1,5 +1,5 @@
1
- import { PdfNameToken } from '../tokens/name-token';
2
- import { PdfObject } from './pdf-object';
1
+ import { PdfNameToken } from '../tokens/name-token.js';
2
+ import { PdfObject } from './pdf-object.js';
3
3
  export class PdfName extends PdfObject {
4
4
  value;
5
5
  constructor(value) {
@@ -1,5 +1,5 @@
1
- import { PdfObject } from './pdf-object';
2
- import { PdfNullToken } from '../tokens/null-token';
1
+ import { PdfObject } from './pdf-object.js';
2
+ import { PdfNullToken } from '../tokens/null-token.js';
3
3
  export declare class PdfNull extends PdfObject {
4
4
  static readonly NULL: PdfNull;
5
5
  protected tokenize(): PdfNullToken[];
@@ -1,5 +1,5 @@
1
- import { PdfObject } from './pdf-object';
2
- import { PdfNullToken } from '../tokens/null-token';
1
+ import { PdfObject } from './pdf-object.js';
2
+ import { PdfNullToken } from '../tokens/null-token.js';
3
3
  export class PdfNull extends PdfObject {
4
4
  static NULL = new PdfNull();
5
5
  tokenize() {
@@ -1,6 +1,6 @@
1
- import { Ref } from '../ref';
2
- import { PdfNumberToken } from '../tokens/number-token';
3
- import { PdfObject } from './pdf-object';
1
+ import { Ref } from '../ref.js';
2
+ import { PdfNumberToken } from '../tokens/number-token.js';
3
+ import { PdfObject } from './pdf-object.js';
4
4
  export declare class PdfNumber extends PdfObject {
5
5
  #private;
6
6
  padTo: number;
@@ -1,6 +1,6 @@
1
- import { Ref } from '../ref';
2
- import { PdfNumberToken } from '../tokens/number-token';
3
- import { PdfObject } from './pdf-object';
1
+ import { Ref } from '../ref.js';
2
+ import { PdfNumberToken } from '../tokens/number-token.js';
3
+ import { PdfObject } from './pdf-object.js';
4
4
  export class PdfNumber extends PdfObject {
5
5
  #value;
6
6
  padTo;
@@ -1,5 +1,5 @@
1
- import { PdfToken } from '../tokens/token';
2
- import { PdfObject } from './pdf-object';
1
+ import { PdfToken } from '../tokens/token.js';
2
+ import { PdfObject } from './pdf-object.js';
3
3
  export declare class PdfObjectReference extends PdfObject {
4
4
  objectNumber: number;
5
5
  generationNumber: number;
@@ -1,5 +1,5 @@
1
- import { PdfObjectReferenceToken } from '../tokens/object-reference-token';
2
- import { PdfObject } from './pdf-object';
1
+ import { PdfObjectReferenceToken } from '../tokens/object-reference-token.js';
2
+ import { PdfObject } from './pdf-object.js';
3
3
  export class PdfObjectReference extends PdfObject {
4
4
  objectNumber;
5
5
  generationNumber;
@@ -1,10 +1,10 @@
1
- import { Ref } from '../ref';
2
- import { PdfNumber } from './pdf-number';
3
- import { PdfObject } from './pdf-object';
1
+ import { Ref } from '../ref.js';
2
+ import { PdfNumber } from './pdf-number.js';
3
+ import { PdfObject } from './pdf-object.js';
4
4
  export declare class PdfStartXRef extends PdfObject {
5
5
  offset: PdfNumber;
6
6
  constructor(offset?: number | PdfNumber | Ref<number>);
7
- protected tokenize(): import("..").PdfToken[];
7
+ protected tokenize(): import("../index.js").PdfToken[];
8
8
  clone(): this;
9
9
  isModified(): boolean;
10
10
  }
@@ -1,7 +1,7 @@
1
- import { PdfStartXRefToken } from '../tokens/start-xref-token';
2
- import { PdfWhitespaceToken } from '../tokens/whitespace-token';
3
- import { PdfNumber } from './pdf-number';
4
- import { PdfObject } from './pdf-object';
1
+ import { PdfStartXRefToken } from '../tokens/start-xref-token.js';
2
+ import { PdfWhitespaceToken } from '../tokens/whitespace-token.js';
3
+ import { PdfNumber } from './pdf-number.js';
4
+ import { PdfObject } from './pdf-object.js';
5
5
  export class PdfStartXRef extends PdfObject {
6
6
  offset;
7
7
  constructor(offset = -1) {
@@ -1,11 +1,11 @@
1
- import { PdfToken } from '../tokens/token';
2
- import { PdfDictionary } from './pdf-dictionary';
3
- import { PdfObject } from './pdf-object';
4
- import { ByteArray } from '../../types';
5
- import { PdfNumber } from './pdf-number';
6
- import { PdfIndirectObject } from './pdf-indirect-object';
7
- import { PdfXRefTableEntry } from './pdf-xref-table';
8
- import { PdfFilter, PdfStreamFilterType } from '../../filters/types';
1
+ import { PdfToken } from '../tokens/token.js';
2
+ import { PdfDictionary } from './pdf-dictionary.js';
3
+ import { PdfObject } from './pdf-object.js';
4
+ import { ByteArray } from '../../types.js';
5
+ import { PdfNumber } from './pdf-number.js';
6
+ import { PdfIndirectObject } from './pdf-indirect-object.js';
7
+ import { PdfXRefTableEntry } from './pdf-xref-table.js';
8
+ import { PdfFilter, PdfStreamFilterType } from '../../filters/types.js';
9
9
  export declare class PdfStream<T extends PdfDictionary = PdfDictionary> extends PdfObject {
10
10
  header: T;
11
11
  original: ByteArray;
@@ -54,6 +54,7 @@ export declare class PdfStream<T extends PdfDictionary = PdfDictionary> extends
54
54
  };
55
55
  static applyFilters(data: ByteArray, filters: PdfStreamFilterType[]): ByteArray;
56
56
  clone(): this;
57
+ static fromString(data: string): PdfStream;
57
58
  }
58
59
  export declare class PdfObjStream extends PdfStream {
59
60
  constructor(options: {