pdf-parser.js 5.2.14 → 5.2.15

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.
@@ -12,7 +12,6 @@ const CS_OPERAND_SMALL_LAST = 246;
12
12
  const CS_OPERAND_MEDIUM_FIRST = 247;
13
13
  const CS_OPERAND_MEDIUM_LAST = 250;
14
14
  const CS_OPERAND_NEGATIVE_MEDIUM_FIRST = 251;
15
- const CS_OPERAND_NEGATIVE_MEDIUM_LAST = 254;
16
15
  const CS_OPERAND_SMALL_BIAS = 139;
17
16
  const CS_OPERAND_MEDIUM_BIAS = 108;
18
17
  const CS_OPERAND_MEDIUM_FIRST_BYTE_BIAS = 247;
@@ -43,7 +42,6 @@ const OP_HHCURVETO = 27;
43
42
  const OP_CALLGSUBR = 29;
44
43
  const OP_VHCURVETO = 30;
45
44
  const OP_HVCURVETO = 31;
46
- const CHARSTRING_OPERATOR_LIMIT = 31;
47
45
  const ESC_HFLEX = 34;
48
46
  const ESC_FLEX = 35;
49
47
  const ESC_HFLEX1 = 36;
@@ -160,7 +158,7 @@ function readOperand(code, offset) {
160
158
  endOffset: offset + 2
161
159
  };
162
160
  }
163
- if (b0 >= CS_OPERAND_NEGATIVE_MEDIUM_FIRST && b0 <= CS_OPERAND_NEGATIVE_MEDIUM_LAST) {
161
+ if (b0 >= CS_OPERAND_NEGATIVE_MEDIUM_FIRST) {
164
162
  if (!require_sfnt.hasBytes(code, offset + 1, 1)) return;
165
163
  return {
166
164
  value: -(b0 - CS_OPERAND_NEGATIVE_MEDIUM_FIRST_BYTE_BIAS) * BYTE_RADIX - require_sfnt.u8(code, offset + 1) - CS_OPERAND_MEDIUM_BIAS,
@@ -183,7 +181,6 @@ function execute(code, state, context, depth) {
183
181
  i = operand.endOffset;
184
182
  continue;
185
183
  }
186
- if (b0 > CHARSTRING_OPERATOR_LIMIT) return false;
187
184
  i += 1;
188
185
  switch (b0) {
189
186
  case OP_HSTEM:
@@ -300,7 +297,6 @@ function execute(code, state, context, depth) {
300
297
  }
301
298
  return stack.length < ENDCHAR_SEAC_ARG_COUNT;
302
299
  case OP_ESCAPE: {
303
- if (i >= code.length) return false;
304
300
  const b1 = code[i];
305
301
  i += 1;
306
302
  if (!executeEscaped(b1, state)) return false;
@@ -356,10 +352,10 @@ function executeEscaped(operator, state) {
356
352
  return false;
357
353
  }
358
354
  function readPrivateSubrs(bytes, privateOperands) {
359
- if (privateOperands === void 0 || privateOperands.length < 2) return;
355
+ if (privateOperands === void 0) return;
360
356
  const size = privateOperands[0];
361
357
  const offset = privateOperands[1];
362
- if (!Number.isInteger(size) || !Number.isInteger(offset) || !require_sfnt.hasBytes(bytes, offset, size)) return;
358
+ if (!require_sfnt.hasBytes(bytes, offset, size)) return;
363
359
  const subrsOffset = require_cff.parseCffDict(bytes.subarray(offset, offset + size))?.get(19)?.[0];
364
360
  if (subrsOffset === void 0 || !Number.isInteger(subrsOffset)) return;
365
361
  return require_cff.readCffIndex(bytes, offset + subrsOffset);
@@ -11,7 +11,6 @@ const CS_OPERAND_SMALL_LAST = 246;
11
11
  const CS_OPERAND_MEDIUM_FIRST = 247;
12
12
  const CS_OPERAND_MEDIUM_LAST = 250;
13
13
  const CS_OPERAND_NEGATIVE_MEDIUM_FIRST = 251;
14
- const CS_OPERAND_NEGATIVE_MEDIUM_LAST = 254;
15
14
  const CS_OPERAND_SMALL_BIAS = 139;
16
15
  const CS_OPERAND_MEDIUM_BIAS = 108;
17
16
  const CS_OPERAND_MEDIUM_FIRST_BYTE_BIAS = 247;
@@ -42,7 +41,6 @@ const OP_HHCURVETO = 27;
42
41
  const OP_CALLGSUBR = 29;
43
42
  const OP_VHCURVETO = 30;
44
43
  const OP_HVCURVETO = 31;
45
- const CHARSTRING_OPERATOR_LIMIT = 31;
46
44
  const ESC_HFLEX = 34;
47
45
  const ESC_FLEX = 35;
48
46
  const ESC_HFLEX1 = 36;
@@ -159,7 +157,7 @@ function readOperand(code, offset) {
159
157
  endOffset: offset + 2
160
158
  };
161
159
  }
162
- if (b0 >= CS_OPERAND_NEGATIVE_MEDIUM_FIRST && b0 <= CS_OPERAND_NEGATIVE_MEDIUM_LAST) {
160
+ if (b0 >= CS_OPERAND_NEGATIVE_MEDIUM_FIRST) {
163
161
  if (!hasBytes(code, offset + 1, 1)) return;
164
162
  return {
165
163
  value: -(b0 - CS_OPERAND_NEGATIVE_MEDIUM_FIRST_BYTE_BIAS) * BYTE_RADIX - u8(code, offset + 1) - CS_OPERAND_MEDIUM_BIAS,
@@ -182,7 +180,6 @@ function execute(code, state, context, depth) {
182
180
  i = operand.endOffset;
183
181
  continue;
184
182
  }
185
- if (b0 > CHARSTRING_OPERATOR_LIMIT) return false;
186
183
  i += 1;
187
184
  switch (b0) {
188
185
  case OP_HSTEM:
@@ -299,7 +296,6 @@ function execute(code, state, context, depth) {
299
296
  }
300
297
  return stack.length < ENDCHAR_SEAC_ARG_COUNT;
301
298
  case OP_ESCAPE: {
302
- if (i >= code.length) return false;
303
299
  const b1 = code[i];
304
300
  i += 1;
305
301
  if (!executeEscaped(b1, state)) return false;
@@ -355,10 +351,10 @@ function executeEscaped(operator, state) {
355
351
  return false;
356
352
  }
357
353
  function readPrivateSubrs(bytes, privateOperands) {
358
- if (privateOperands === void 0 || privateOperands.length < 2) return;
354
+ if (privateOperands === void 0) return;
359
355
  const size = privateOperands[0];
360
356
  const offset = privateOperands[1];
361
- if (!Number.isInteger(size) || !Number.isInteger(offset) || !hasBytes(bytes, offset, size)) return;
357
+ if (!hasBytes(bytes, offset, size)) return;
362
358
  const subrsOffset = parseCffDict(bytes.subarray(offset, offset + size))?.get(19)?.[0];
363
359
  if (subrsOffset === void 0 || !Number.isInteger(subrsOffset)) return;
364
360
  return readCffIndex(bytes, offset + subrsOffset);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-parser.js",
3
- "version": "5.2.14",
3
+ "version": "5.2.15",
4
4
  "description": "Hand-written, dependency-minimal PDF codec: parses arbitrary real-world PDFs and generates new ones, built on its own codec-owned LayoutDocument item model and Zod 4 codecs.",
5
5
  "type": "module",
6
6
  "repository": {