pretext-pdf 1.9.0 → 2.0.13

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 (159) hide show
  1. package/CHANGELOG.md +414 -0
  2. package/dist/allowed-props.d.ts +23 -8
  3. package/dist/allowed-props.d.ts.map +1 -1
  4. package/dist/allowed-props.js +38 -6
  5. package/dist/allowed-props.js.map +1 -1
  6. package/dist/assets/index.d.ts +1 -1
  7. package/dist/assets/index.d.ts.map +1 -1
  8. package/dist/assets/index.js +1 -1
  9. package/dist/assets/index.js.map +1 -1
  10. package/dist/assets/loaders/images.d.ts.map +1 -1
  11. package/dist/assets/loaders/images.js +4 -1
  12. package/dist/assets/loaders/images.js.map +1 -1
  13. package/dist/assets/security/path-allowlist.d.ts.map +1 -1
  14. package/dist/assets/security/path-allowlist.js +10 -1
  15. package/dist/assets/security/path-allowlist.js.map +1 -1
  16. package/dist/assets/svg/resolve-content.d.ts.map +1 -1
  17. package/dist/assets/svg/resolve-content.js +4 -1
  18. package/dist/assets/svg/resolve-content.js.map +1 -1
  19. package/dist/assets/svg/sanitize.d.ts +2 -0
  20. package/dist/assets/svg/sanitize.d.ts.map +1 -1
  21. package/dist/assets/svg/sanitize.js +41 -10
  22. package/dist/assets/svg/sanitize.js.map +1 -1
  23. package/dist/builder.js +2 -2
  24. package/dist/builder.js.map +1 -1
  25. package/dist/compat/normalize.d.ts +13 -0
  26. package/dist/compat/normalize.d.ts.map +1 -0
  27. package/dist/compat/normalize.js +146 -0
  28. package/dist/compat/normalize.js.map +1 -0
  29. package/dist/compat/pdfmake-types.d.ts +91 -0
  30. package/dist/compat/pdfmake-types.d.ts.map +1 -0
  31. package/dist/compat/pdfmake-types.js +8 -0
  32. package/dist/compat/pdfmake-types.js.map +1 -0
  33. package/dist/compat/translate.d.ts +7 -0
  34. package/dist/compat/translate.d.ts.map +1 -0
  35. package/dist/compat/translate.js +205 -0
  36. package/dist/compat/translate.js.map +1 -0
  37. package/dist/compat.d.ts +6 -161
  38. package/dist/compat.d.ts.map +1 -1
  39. package/dist/compat.js +13 -404
  40. package/dist/compat.js.map +1 -1
  41. package/dist/fonts/bundled-paths.d.ts +13 -0
  42. package/dist/fonts/bundled-paths.d.ts.map +1 -0
  43. package/dist/fonts/bundled-paths.js +43 -0
  44. package/dist/fonts/bundled-paths.js.map +1 -0
  45. package/dist/fonts/collect-needed.d.ts +10 -0
  46. package/dist/fonts/collect-needed.d.ts.map +1 -0
  47. package/dist/fonts/collect-needed.js +85 -0
  48. package/dist/fonts/collect-needed.js.map +1 -0
  49. package/dist/fonts/collect-text.d.ts +9 -0
  50. package/dist/fonts/collect-text.d.ts.map +1 -0
  51. package/dist/fonts/collect-text.js +162 -0
  52. package/dist/fonts/collect-text.js.map +1 -0
  53. package/dist/fonts/load-bytes.d.ts +10 -0
  54. package/dist/fonts/load-bytes.d.ts.map +1 -0
  55. package/dist/fonts/load-bytes.js +56 -0
  56. package/dist/fonts/load-bytes.js.map +1 -0
  57. package/dist/fonts.d.ts +11 -10
  58. package/dist/fonts.d.ts.map +1 -1
  59. package/dist/fonts.js +17 -419
  60. package/dist/fonts.js.map +1 -1
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/measure-blocks/simple-blocks.js +3 -3
  66. package/dist/measure-blocks/simple-blocks.js.map +1 -1
  67. package/dist/measure-text.d.ts.map +1 -1
  68. package/dist/measure-text.js +7 -0
  69. package/dist/measure-text.js.map +1 -1
  70. package/dist/pipeline-footnotes.d.ts +2 -2
  71. package/dist/pipeline-footnotes.d.ts.map +1 -1
  72. package/dist/pipeline-footnotes.js +5 -2
  73. package/dist/pipeline-footnotes.js.map +1 -1
  74. package/dist/pipeline.d.ts.map +1 -1
  75. package/dist/pipeline.js +45 -12
  76. package/dist/pipeline.js.map +1 -1
  77. package/dist/plugin-types.d.ts +3 -3
  78. package/dist/plugin-types.d.ts.map +1 -1
  79. package/dist/render-blocks/hr.d.ts.map +1 -1
  80. package/dist/render-blocks/hr.js +2 -3
  81. package/dist/render-blocks/hr.js.map +1 -1
  82. package/dist/render-extras.d.ts +0 -2
  83. package/dist/render-extras.d.ts.map +1 -1
  84. package/dist/render-extras.js +15 -78
  85. package/dist/render-extras.js.map +1 -1
  86. package/dist/render-utils.d.ts +1 -7
  87. package/dist/render-utils.d.ts.map +1 -1
  88. package/dist/render-utils.js +18 -35
  89. package/dist/render-utils.js.map +1 -1
  90. package/dist/render.js +2 -1
  91. package/dist/render.js.map +1 -1
  92. package/dist/schema/document.d.ts +2115 -0
  93. package/dist/schema/document.d.ts.map +1 -0
  94. package/dist/schema/document.js +275 -0
  95. package/dist/schema/document.js.map +1 -0
  96. package/dist/schema/elements-block.d.ts +481 -0
  97. package/dist/schema/elements-block.d.ts.map +1 -0
  98. package/dist/schema/elements-block.js +155 -0
  99. package/dist/schema/elements-block.js.map +1 -0
  100. package/dist/schema/elements-media.d.ts +282 -0
  101. package/dist/schema/elements-media.d.ts.map +1 -0
  102. package/dist/schema/elements-media.js +83 -0
  103. package/dist/schema/elements-media.js.map +1 -0
  104. package/dist/schema/elements-table.d.ts +134 -0
  105. package/dist/schema/elements-table.d.ts.map +1 -0
  106. package/dist/schema/elements-table.js +60 -0
  107. package/dist/schema/elements-table.js.map +1 -0
  108. package/dist/schema/elements-text.d.ts +782 -0
  109. package/dist/schema/elements-text.d.ts.map +1 -0
  110. package/dist/schema/elements-text.js +260 -0
  111. package/dist/schema/elements-text.js.map +1 -0
  112. package/dist/schema/shared.d.ts +84 -0
  113. package/dist/schema/shared.d.ts.map +1 -0
  114. package/dist/schema/shared.js +29 -0
  115. package/dist/schema/shared.js.map +1 -0
  116. package/dist/schema.d.ts +10 -1869
  117. package/dist/schema.d.ts.map +1 -1
  118. package/dist/schema.js +10 -793
  119. package/dist/schema.js.map +1 -1
  120. package/dist/signing/index.d.ts +3 -0
  121. package/dist/signing/index.d.ts.map +1 -0
  122. package/dist/signing/index.js +3 -0
  123. package/dist/signing/index.js.map +1 -0
  124. package/dist/signing/placeholder.d.ts +5 -0
  125. package/dist/signing/placeholder.d.ts.map +1 -0
  126. package/dist/signing/placeholder.js +75 -0
  127. package/dist/signing/placeholder.js.map +1 -0
  128. package/dist/signing/post-process.d.ts +16 -0
  129. package/dist/signing/post-process.d.ts.map +1 -0
  130. package/dist/signing/post-process.js +125 -0
  131. package/dist/signing/post-process.js.map +1 -0
  132. package/dist/types-public/document.d.ts +106 -110
  133. package/dist/types-public/document.d.ts.map +1 -1
  134. package/dist/types-public/elements-block.d.ts +54 -35
  135. package/dist/types-public/elements-block.d.ts.map +1 -1
  136. package/dist/types-public/validation.d.ts +9 -15
  137. package/dist/types-public/validation.d.ts.map +1 -1
  138. package/dist/types.d.ts +1 -1
  139. package/dist/types.d.ts.map +1 -1
  140. package/dist/validate/document.d.ts.map +1 -1
  141. package/dist/validate/document.js +5 -1
  142. package/dist/validate/document.js.map +1 -1
  143. package/dist/validate/elements/forms-floats.d.ts +1 -1
  144. package/dist/validate/elements/forms-floats.d.ts.map +1 -1
  145. package/dist/validate/elements/forms-floats.js +44 -6
  146. package/dist/validate/elements/forms-floats.js.map +1 -1
  147. package/dist/validate/elements/media.d.ts.map +1 -1
  148. package/dist/validate/elements/media.js +14 -0
  149. package/dist/validate/elements/media.js.map +1 -1
  150. package/dist/validate/elements/structural-simple.js +4 -4
  151. package/dist/validate/elements/structural-simple.js.map +1 -1
  152. package/dist/validate/helpers.d.ts +6 -6
  153. package/dist/validate/helpers.d.ts.map +1 -1
  154. package/dist/validate/helpers.js +7 -7
  155. package/dist/validate/helpers.js.map +1 -1
  156. package/dist/validate/index.d.ts.map +1 -1
  157. package/dist/validate/index.js +4 -6
  158. package/dist/validate/index.js.map +1 -1
  159. package/package.json +7 -3
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-props.js","sourceRoot":"","sources":["../src/allowed-props.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allowed-props.js","sourceRoot":"","sources":["../src/allowed-props.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export { assertPathAllowed } from './security/path-allowlist.js';
13
13
  export { normalizeIpv4Hostname } from './security/ipv4-normalize.js';
14
14
  export { resolveAndValidateUrl, assertSafeUrl, type ResolvedSafeUrl, } from './security/url-validation.js';
15
15
  export { fetchWithTimeout } from './security/fetch.js';
16
- export { sanitizeSvg } from './svg/sanitize.js';
16
+ export { sanitizeSvg, SVG_MAX_BYTES, MAX_SVG_ELEMENTS } from './svg/sanitize.js';
17
17
  export { VECTOR_RASTER_CONCURRENCY } from './loaders/vectors.js';
18
18
  export { loadImages } from './loaders/orchestrator.js';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
@@ -13,7 +13,7 @@ export { assertPathAllowed } from './security/path-allowlist.js';
13
13
  export { normalizeIpv4Hostname } from './security/ipv4-normalize.js';
14
14
  export { resolveAndValidateUrl, assertSafeUrl, } from './security/url-validation.js';
15
15
  export { fetchWithTimeout } from './security/fetch.js';
16
- export { sanitizeSvg } from './svg/sanitize.js';
16
+ export { sanitizeSvg, SVG_MAX_BYTES, MAX_SVG_ELEMENTS } from './svg/sanitize.js';
17
17
  export { VECTOR_RASTER_CONCURRENCY } from './loaders/vectors.js';
18
18
  export { loadImages } from './loaders/orchestrator.js';
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EACL,qBAAqB,EACrB,aAAa,GAEd,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EACL,qBAAqB,EACrB,aAAa,GAEd,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../src/assets/loaders/images.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAMlD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAiBlG;AAED,4DAA4D;AAC5D,wBAAsB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAuD/G"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../src/assets/loaders/images.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAMlD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAiBlG;AAED,4DAA4D;AAC5D,wBAAsB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CA0D/G"}
@@ -33,7 +33,10 @@ export async function loadImageBytes(el, key, allowedDirs) {
33
33
  if (!src || typeof src !== 'string') {
34
34
  throw new PretextPdfError('IMAGE_LOAD_FAILED', `Image "${key}": 'src' must be a non-empty string path, URL, or Uint8Array`);
35
35
  }
36
- if (src.startsWith('https://') || src.startsWith('http://')) {
36
+ if (src.startsWith('http://')) {
37
+ throw new PretextPdfError('IMAGE_LOAD_FAILED', `Image "${key}": HTTP URLs are not allowed — use HTTPS`);
38
+ }
39
+ if (src.startsWith('https://')) {
37
40
  // SSRF validation happens inside fetchWithTimeout — no need to pre-validate
38
41
  let resp;
39
42
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../../../src/assets/loaders/images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../../src/assets/loaders/images.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-allowlist.d.ts","sourceRoot":"","sources":["../../../src/assets/security/path-allowlist.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,KAAK,EAAE,MAAM,GACZ,IAAI,CAmBN"}
1
+ {"version":3,"file":"path-allowlist.d.ts","sourceRoot":"","sources":["../../../src/assets/security/path-allowlist.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,KAAK,EAAE,MAAM,GACZ,IAAI,CA0BN"}
@@ -1,3 +1,4 @@
1
+ import { realpathSync } from 'node:fs';
1
2
  import { PretextPdfError } from '../../errors.js';
2
3
  /**
3
4
  * Enforce allowedFileDirs: resolved absolute path must start with an allowed dir.
@@ -14,7 +15,15 @@ export function assertPathAllowed(resolvedPath, allowedDirs, label) {
14
15
  throw new PretextPdfError('PATH_TRAVERSAL', `${label} src uses a local file path but doc.allowedFileDirs is not set. ` +
15
16
  `Configure allowedFileDirs to explicitly list the directories from which files may be read.`);
16
17
  }
17
- const norm = resolvedPath.replace(/\\/g, '/');
18
+ // Resolve symlinks so a symlink inside an allowed dir cannot escape to an arbitrary path.
19
+ let canonicalPath = resolvedPath;
20
+ try {
21
+ canonicalPath = realpathSync(resolvedPath);
22
+ }
23
+ catch {
24
+ // File does not exist yet — fall through to prefix check on the raw resolved path.
25
+ }
26
+ const norm = canonicalPath.replace(/\\/g, '/');
18
27
  const allowed = allowedDirs.some((dir) => {
19
28
  const d = dir.replace(/\\/g, '/').replace(/\/$/, '');
20
29
  return norm === d || norm.startsWith(d + '/');
@@ -1 +1 @@
1
- {"version":3,"file":"path-allowlist.js","sourceRoot":"","sources":["../../../src/assets/security/path-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,WAAiC,EACjC,KAAa;IAEb,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,eAAe,CACvB,gBAAgB,EAChB,GAAG,KAAK,kEAAkE;YACxE,4FAA4F,CAC/F,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpD,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CACvB,gBAAgB,EAChB,GAAG,KAAK,iGAAiG,CAC1G,CAAA;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"path-allowlist.js","sourceRoot":"","sources":["../../../src/assets/security/path-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,WAAiC,EACjC,KAAa;IAEb,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,eAAe,CACvB,gBAAgB,EAChB,GAAG,KAAK,kEAAkE;YACxE,4FAA4F,CAC/F,CAAA;IACH,CAAC;IACD,0FAA0F;IAC1F,IAAI,aAAa,GAAG,YAAY,CAAA;IAChC,IAAI,CAAC;QACH,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,mFAAmF;IACrF,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpD,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CACvB,gBAAgB,EAChB,GAAG,KAAK,iGAAiG,CAC1G,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-content.d.ts","sourceRoot":"","sources":["../../../src/assets/svg/resolve-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAOhD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BnG"}
1
+ {"version":3,"file":"resolve-content.d.ts","sourceRoot":"","sources":["../../../src/assets/svg/resolve-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAOhD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BnG"}
@@ -13,7 +13,10 @@ export async function resolveSvgContent(el, allowedFileDirs) {
13
13
  if (!el.src) {
14
14
  throw new PretextPdfError('SVG_LOAD_FAILED', "SvgElement requires either 'svg' (inline string) or 'src' (file path or https:// URL)");
15
15
  }
16
- if (el.src.startsWith('https://') || el.src.startsWith('http://')) {
16
+ if (el.src.startsWith('http://')) {
17
+ throw new PretextPdfError('SVG_LOAD_FAILED', 'SVG HTTP URLs are not allowed — use HTTPS');
18
+ }
19
+ if (el.src.startsWith('https://')) {
17
20
  // SSRF validation happens inside fetchWithTimeout — no need to pre-validate
18
21
  let resp;
19
22
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-content.js","sourceRoot":"","sources":["../../../src/assets/svg/resolve-content.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAc,EAAE,eAA0B;IAChF,IAAI,EAAE,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IAEtC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,uFAAuF,CAAC,CAAA;IACvI,CAAC;IAED,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,4EAA4E;QAC5E,IAAI,IAAc,CAAA;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC3H,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,yBAAyB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACtF,CAAC;QACD,OAAO,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACxC,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,wBAAwB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"resolve-content.js","sourceRoot":"","sources":["../../../src/assets/svg/resolve-content.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAc,EAAE,eAA0B;IAChF,IAAI,EAAE,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IAEtC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,uFAAuF,CAAC,CAAA;IACvI,CAAC;IAED,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,2CAA2C,CAAC,CAAA;IAC3F,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,4EAA4E;QAC5E,IAAI,IAAc,CAAA;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC3H,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,yBAAyB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACtF,CAAC;QACD,OAAO,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACxC,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,wBAAwB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;AACxD,CAAC"}
@@ -23,5 +23,7 @@
23
23
  */
24
24
  /** Maximum SVG string length (5 MB) — prevents ReDoS on oversized inputs. */
25
25
  export declare const SVG_MAX_BYTES: number;
26
+ /** Maximum number of XML elements (open tags) — heuristic DoS guard for deeply nested SVGs. */
27
+ export declare const MAX_SVG_ELEMENTS = 5000;
26
28
  export declare function sanitizeSvg(svg: string): string;
27
29
  //# sourceMappingURL=sanitize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/assets/svg/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,aAAa,QAAkB,CAAA;AAE5C,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsC/C"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/assets/svg/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,6EAA6E;AAC7E,eAAO,MAAM,aAAa,QAAkB,CAAA;AAE5C,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmE/C"}
@@ -21,19 +21,41 @@
21
21
  * `dist/assets.js` consumers (test/svg-sanitizer.test.ts, the snapshot
22
22
  * tripwire) keep working unchanged.
23
23
  */
24
+ import { PretextPdfError } from '../../errors.js';
24
25
  /** Maximum SVG string length (5 MB) — prevents ReDoS on oversized inputs. */
25
26
  export const SVG_MAX_BYTES = 5 * 1024 * 1024;
27
+ /** Maximum number of XML elements (open tags) — heuristic DoS guard for deeply nested SVGs. */
28
+ export const MAX_SVG_ELEMENTS = 5000;
26
29
  export function sanitizeSvg(svg) {
27
- // Skip regex passes on oversized strings canvas will reject them anyway
28
- if (svg.length > SVG_MAX_BYTES)
29
- return svg;
30
+ // Guard oversized inputs — regex passes on 5 MB+ strings create ReDoS risk.
31
+ // Throw rather than pass through: an oversized SVG must never reach the
32
+ // rasterizer with unstripped script/event content intact.
33
+ if (svg.length > SVG_MAX_BYTES) {
34
+ throw new PretextPdfError('SVG_LOAD_FAILED', `SVG exceeds maximum size of ${SVG_MAX_BYTES} bytes (got ${svg.length})`);
35
+ }
36
+ // Heuristic element count guard — deeply nested SVGs can exhaust rasterizer
37
+ // memory. Count open tags as a cheap proxy. Throw rather than return raw:
38
+ // passing unsanitized content downstream is worse than rejecting the input.
39
+ const elementCount = (svg.match(/<[a-zA-Z]/g) ?? []).length;
40
+ if (elementCount > MAX_SVG_ELEMENTS) {
41
+ throw new PretextPdfError('SVG_LOAD_FAILED', `SVG exceeds maximum element count of ${MAX_SVG_ELEMENTS} (got ${elementCount})`);
42
+ }
30
43
  // Remove self-closing <script/> then paired <script>...</script> blocks
31
44
  let s = svg.replace(/<script\b[^>]*\/>/gi, '');
32
45
  s = s.replace(/<script[\s\S]*?<\/script>/gi, '');
33
46
  // Remove event handler attributes (onload, onclick, onerror, etc.)
34
- s = s.replace(/\bon\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*)/gi, '');
35
- // Remove <image> and <use> hrefs pointing to unsafe schemes
36
- s = s.replace(/(<(?:image|use)\b[^>]*?)\s+(?:xlink:)?href\s*=\s*["'](?:file|data|javascript):[^"']*["']/gi, '$1');
47
+ // Use [\w\r\n\t ]+ for the name portion so that whitespace injected INSIDE the
48
+ // attribute name (e.g. on\nload=, on\tclick=) is also stripped. The original
49
+ // \w+ stopped at non-word chars, leaving split names unmatched. The \s* before
50
+ // = stays to catch normal spacing between the name and the assignment operator.
51
+ s = s.replace(/\bon[\w\r\n\t ]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*)/gi, '');
52
+ // Strip any non-local href from <image> and <use>.
53
+ // Only fragment refs (#id) are safe in an embedded SVG — they point to elements
54
+ // within the same SVG document. Any external URL (https://, http://, //,
55
+ // file://, data:, javascript:, relative paths to disk files) would cause the
56
+ // SVG rasterizer to make an outbound network or filesystem request at render
57
+ // time — an SSRF-class vector. Deny everything that doesn't start with '#'.
58
+ s = s.replace(/(<(?:image|use)\b[^>]*?)\s+(?:xlink:)?href\s*=\s*["'](?!#)[^"']*["']/gi, '$1');
37
59
  // v1.6.0: strip <foreignObject> entirely — it's an HTML escape hatch and
38
60
  // the only XML-in-SVG construct that can host arbitrary tags.
39
61
  s = s.replace(/<foreignObject\b[^>]*\/>/gi, '');
@@ -42,10 +64,19 @@ export function sanitizeSvg(svg) {
42
64
  // Drop only the attribute, not the whole <a>, so the surrounding text content
43
65
  // (children of <a>) still renders.
44
66
  s = s.replace(/\s+(?:xlink:)?href\s*=\s*["'](?:javascript|vbscript|data):[^"']*["']/gi, '');
45
- // v1.6.0: strip CSS expression(...) inside <style> blocks. Replace just the
46
- // expression call with an empty string so the surrounding stylesheet stays
47
- // parseable.
48
- s = s.replace(/expression\s*\([^)]*\)/gi, '');
67
+ // v1.6.0: strip CSS expression(...) inside <style> blocks.
68
+ // Multi-pass to handle nested parens. Each pass strips expression() calls
69
+ // whose arguments contain at most one level of paren nesting — e.g.
70
+ // expression(alert(1)) and expression(eval(x)) are handled in one pass.
71
+ // Deeper nesting (e.g. expression(f(g(x)))) unwinds over multiple passes:
72
+ // the innermost expression()-shaped call is consumed first, then the outer.
73
+ // Pattern: (?:[^()]*|\([^()]*\))* matches argument content with one level
74
+ // of inner parens — e.g. "alert(1)" = [^()]* + \([^()]*\) + [^()]*.
75
+ let prev;
76
+ do {
77
+ prev = s;
78
+ s = s.replace(/expression\s*\((?:[^()]*|\([^()]*\))*\)/gi, '');
79
+ } while (s !== prev);
49
80
  // v1.7.1: strip @import rules — SVGs embedded in PDFs have no business
50
81
  // importing external stylesheets; also an outbound network-leak vector.
51
82
  s = s.replace(/@import\s+[^;{}]*/gi, '');
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/assets/svg/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAE5C,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,0EAA0E;IAC1E,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa;QAAE,OAAO,GAAG,CAAA;IAC1C,wEAAwE;IACxE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;IAChD,mEAAmE;IACnE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,6CAA6C,EAAE,EAAE,CAAC,CAAA;IAChE,4DAA4D;IAC5D,CAAC,GAAG,CAAC,CAAC,OAAO,CACX,4FAA4F,EAC5F,IAAI,CACL,CAAA;IACD,yEAAyE;IACzE,8DAA8D;IAC9D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAA;IAC/C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAA;IAC9D,qEAAqE;IACrE,8EAA8E;IAC9E,mCAAmC;IACnC,CAAC,GAAG,CAAC,CAAC,OAAO,CACX,wEAAwE,EACxE,EAAE,CACH,CAAA;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,aAAa;IACb,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;IAC7C,uEAAuE;IACvE,wEAAwE;IACxE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;IACxC,2EAA2E;IAC3E,2DAA2D;IAC3D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kEAAkE,EAAE,EAAE,CAAC,CAAA;IACrF,2EAA2E;IAC3E,oEAAoE;IACpE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gDAAgD,EAAE,EAAE,CAAC,CAAA;IACnE,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/assets/svg/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAE5C,+FAA+F;AAC/F,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAEpC,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,4EAA4E;IAC5E,wEAAwE;IACxE,0DAA0D;IAC1D,IAAI,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,+BAA+B,aAAa,eAAe,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;IACxH,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAC3D,IAAI,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CAAC,iBAAiB,EAAE,wCAAwC,gBAAgB,SAAS,YAAY,GAAG,CAAC,CAAA;IAChI,CAAC;IACD,wEAAwE;IACxE,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAA;IAChD,mEAAmE;IACnE,+EAA+E;IAC/E,6EAA6E;IAC7E,+EAA+E;IAC/E,gFAAgF;IAChF,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,sDAAsD,EAAE,EAAE,CAAC,CAAA;IACzE,mDAAmD;IACnD,gFAAgF;IAChF,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,CAAC,GAAG,CAAC,CAAC,OAAO,CACX,wEAAwE,EACxE,IAAI,CACL,CAAA;IACD,yEAAyE;IACzE,8DAA8D;IAC9D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAA;IAC/C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAA;IAC9D,qEAAqE;IACrE,8EAA8E;IAC9E,mCAAmC;IACnC,CAAC,GAAG,CAAC,CAAC,OAAO,CACX,wEAAwE,EACxE,EAAE,CACH,CAAA;IACD,2DAA2D;IAC3D,0EAA0E;IAC1E,oEAAoE;IACpE,wEAAwE;IACxE,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,IAAY,CAAA;IAChB,GAAG,CAAC;QACF,IAAI,GAAG,CAAC,CAAA;QACR,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAC;IACpB,uEAAuE;IACvE,wEAAwE;IACxE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;IACxC,2EAA2E;IAC3E,2DAA2D;IAC3D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kEAAkE,EAAE,EAAE,CAAC,CAAA;IACrF,2EAA2E;IAC3E,oEAAoE;IACpE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gDAAgD,EAAE,EAAE,CAAC,CAAA;IACnE,OAAO,CAAC,CAAA;AACV,CAAC"}
package/dist/builder.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Accumulates ContentElement[] and delegates final rendering to render().
6
6
  */
7
7
  import { runPipeline } from './pipeline.js';
8
- import { applyPostProcessing } from './post-process.js';
8
+ import { applyPostProcessing } from './signing/index.js';
9
9
  /**
10
10
  * Create a new PDF document using the fluent builder API.
11
11
  *
@@ -158,7 +158,7 @@ export function createPdf(options = {}) {
158
158
  metadata: options.metadata,
159
159
  ...(defaultParagraphStyle !== undefined && { defaultParagraphStyle }),
160
160
  ...(sections.length > 0 && { sections }),
161
- content,
161
+ content: [...content],
162
162
  };
163
163
  return doc;
164
164
  },
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Normalizers and structural helpers for pdfmake → pretext-pdf translation. */
2
+ import type { TableElement, HeaderFooterSpec, Margins } from '../types.js';
3
+ import { type PdfmakeNode, type PdfmakeObjectNode, type PdfmakeStyle, type TranslateCtx } from './pdfmake-types.js';
4
+ /** Collect flat text from a pdfmake child-node array, recursing into nested arrays. */
5
+ export declare function extractFlatText(children: PdfmakeNode[], ctx: TranslateCtx): string;
6
+ export declare function translateTable(t: NonNullable<PdfmakeObjectNode['table']>, ctx: TranslateCtx): TableElement;
7
+ export declare function pdfmakeAlignToPretext(a: PdfmakeStyle['alignment']): 'left' | 'center' | 'right' | 'justify' | undefined;
8
+ export declare function normalizeStyleNames(s: string | string[] | undefined): string[];
9
+ export declare function mergeStyles(ctx: TranslateCtx, styleNames: string[], node: PdfmakeObjectNode, parent?: PdfmakeStyle): PdfmakeStyle;
10
+ export declare function normalizePageSize(name: string): import('../page-sizes.js').NamedPageSize | null;
11
+ export declare function normalizeMargins(m: number | [number, number] | [number, number, number, number]): Margins | null;
12
+ export declare function normalizeHeaderFooter(hf: import('./pdfmake-types.js').PdfmakeDocument['header'] | import('./pdfmake-types.js').PdfmakeDocument['footer'], onUnsupported: (f: string) => void, label: 'header' | 'footer'): HeaderFooterSpec | null;
13
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/compat/normalize.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,KAAK,EACV,YAAY,EAGZ,gBAAgB,EAChB,OAAO,EACR,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEnH,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAQlF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,YAAY,CAiC1G;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAGvH;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAG9E;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,YAAY,EACjB,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE,iBAAiB,EACvB,MAAM,CAAC,EAAE,YAAY,GACpB,YAAY,CAad;AAcD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,kBAAkB,EAAE,aAAa,GAAG,IAAI,CAS/F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAOhH;AAED,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,OAAO,oBAAoB,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,OAAO,oBAAoB,EAAE,eAAe,CAAC,QAAQ,CAAC,EACnH,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,EAClC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GACzB,gBAAgB,GAAG,IAAI,CAYzB"}
@@ -0,0 +1,146 @@
1
+ /** Normalizers and structural helpers for pdfmake → pretext-pdf translation. */
2
+ import {} from './pdfmake-types.js';
3
+ /** Collect flat text from a pdfmake child-node array, recursing into nested arrays. */
4
+ export function extractFlatText(children, ctx) {
5
+ const buf = [];
6
+ for (const c of children) {
7
+ if (typeof c === 'string') {
8
+ buf.push(c);
9
+ continue;
10
+ }
11
+ if (typeof c.text === 'string') {
12
+ buf.push(c.text);
13
+ continue;
14
+ }
15
+ if (Array.isArray(c.text))
16
+ buf.push(extractFlatText(c.text, ctx));
17
+ }
18
+ return buf.join('');
19
+ }
20
+ export function translateTable(t, ctx) {
21
+ const colCount = t.body[0]?.length ?? 0;
22
+ const widths = t.widths ?? new Array(colCount).fill('*');
23
+ const columns = widths.map((w) => {
24
+ if (typeof w === 'number')
25
+ return { width: w };
26
+ if (w === '*')
27
+ return { width: '1*' };
28
+ if (w === 'auto')
29
+ return { width: 'auto' };
30
+ if (typeof w === 'string' && /^\d*\.?\d+\*$/.test(w))
31
+ return { width: w };
32
+ return { width: '1*' };
33
+ });
34
+ const headerRows = t.headerRows ?? 0;
35
+ const rows = t.body.map((row, idx) => {
36
+ const isHeader = idx < headerRows;
37
+ const cells = row.map(cell => {
38
+ if (typeof cell === 'string')
39
+ return { text: cell, ...(isHeader ? { fontWeight: 700 } : {}) };
40
+ if (cell && typeof cell === 'object') {
41
+ const styleNames = normalizeStyleNames(cell.style);
42
+ const merged = mergeStyles(ctx, styleNames, cell);
43
+ const text = typeof cell.text === 'string' ? cell.text : (Array.isArray(cell.text) ? extractFlatText(cell.text, ctx) : '');
44
+ const tcell = { text };
45
+ if (merged.bold || isHeader)
46
+ tcell.fontWeight = 700;
47
+ if (merged.color)
48
+ tcell.color = merged.color;
49
+ if (merged.alignment && merged.alignment !== 'justify')
50
+ tcell.align = merged.alignment;
51
+ if (merged.fontSize !== undefined)
52
+ tcell.fontSize = merged.fontSize;
53
+ return tcell;
54
+ }
55
+ return { text: '' };
56
+ });
57
+ return isHeader ? { isHeader: true, cells } : { cells };
58
+ });
59
+ return { type: 'table', columns, rows };
60
+ }
61
+ export function pdfmakeAlignToPretext(a) {
62
+ if (a === 'left' || a === 'center' || a === 'right' || a === 'justify')
63
+ return a;
64
+ return undefined;
65
+ }
66
+ export function normalizeStyleNames(s) {
67
+ if (!s)
68
+ return [];
69
+ return Array.isArray(s) ? s : [s];
70
+ }
71
+ export function mergeStyles(ctx, styleNames, node, parent) {
72
+ const merged = { ...ctx.defaultStyle, ...(parent ?? {}) };
73
+ for (const name of styleNames) {
74
+ const s = ctx.styles[name];
75
+ if (s)
76
+ copySafeStyleProperties(merged, s);
77
+ }
78
+ if (node.bold !== undefined)
79
+ merged.bold = node.bold;
80
+ if (node.italics !== undefined)
81
+ merged.italics = node.italics;
82
+ if (node.color !== undefined)
83
+ merged.color = node.color;
84
+ if (node.fontSize !== undefined)
85
+ merged.fontSize = node.fontSize;
86
+ if (node.alignment !== undefined)
87
+ merged.alignment = node.alignment;
88
+ if (node.font !== undefined)
89
+ merged.font = node.font;
90
+ return merged;
91
+ }
92
+ /** Copy only known-safe style properties, preventing prototype pollution. */
93
+ function copySafeStyleProperties(target, source) {
94
+ if (typeof source !== 'object' || source === null)
95
+ return;
96
+ const src = source;
97
+ const safeKeys = ['fontSize', 'bold', 'italics', 'color', 'alignment', 'font'];
98
+ for (const key of safeKeys) {
99
+ if (Object.hasOwn(src, key) && src[key] !== undefined) {
100
+ target[key] = src[key];
101
+ }
102
+ }
103
+ }
104
+ export function normalizePageSize(name) {
105
+ const n = name.trim();
106
+ const map = {
107
+ A3: 'A3', A4: 'A4', A5: 'A5',
108
+ LETTER: 'Letter', Letter: 'Letter', letter: 'Letter',
109
+ LEGAL: 'Legal', Legal: 'Legal', legal: 'Legal',
110
+ TABLOID: 'Tabloid', Tabloid: 'Tabloid', tabloid: 'Tabloid',
111
+ };
112
+ return map[n] ?? null;
113
+ }
114
+ export function normalizeMargins(m) {
115
+ if (typeof m === 'number')
116
+ return { top: m, bottom: m, left: m, right: m };
117
+ if (Array.isArray(m)) {
118
+ if (m.length === 2)
119
+ return { left: m[0], top: m[1], right: m[0], bottom: m[1] };
120
+ if (m.length === 4)
121
+ return { left: m[0], top: m[1], right: m[2], bottom: m[3] };
122
+ }
123
+ return null;
124
+ }
125
+ export function normalizeHeaderFooter(hf, onUnsupported, label) {
126
+ if (hf === undefined)
127
+ return null;
128
+ if (typeof hf === 'function') {
129
+ onUnsupported(`${label} (function form not supported — pass a string instead)`);
130
+ return null;
131
+ }
132
+ if (typeof hf === 'string')
133
+ return { text: hf };
134
+ if (typeof hf === 'object' && typeof hf.text === 'string') {
135
+ const out = { text: hf.text };
136
+ if (hf.alignment === 'left' || hf.alignment === 'center' || hf.alignment === 'right')
137
+ out.align = hf.alignment;
138
+ if (typeof hf.fontSize === 'number')
139
+ out.fontSize = hf.fontSize;
140
+ if (hf.color)
141
+ out.color = hf.color;
142
+ return out;
143
+ }
144
+ return null;
145
+ }
146
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/compat/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /** pdfmake input type definitions and compat configuration. */
2
+ /** A pdfmake-style document descriptor, stripped to the fields this shim handles. */
3
+ export interface PdfmakeDocument {
4
+ content: PdfmakeNode | PdfmakeNode[];
5
+ styles?: Record<string, PdfmakeStyle>;
6
+ defaultStyle?: PdfmakeStyle;
7
+ pageSize?: string | {
8
+ width: number;
9
+ height: number;
10
+ };
11
+ pageOrientation?: 'portrait' | 'landscape';
12
+ pageMargins?: number | [number, number] | [number, number, number, number];
13
+ header?: string | {
14
+ text: string;
15
+ alignment?: PdfmakeStyle['alignment'];
16
+ fontSize?: number;
17
+ color?: string;
18
+ };
19
+ footer?: string | {
20
+ text: string;
21
+ alignment?: PdfmakeStyle['alignment'];
22
+ fontSize?: number;
23
+ color?: string;
24
+ };
25
+ info?: {
26
+ title?: string;
27
+ author?: string;
28
+ subject?: string;
29
+ keywords?: string;
30
+ };
31
+ readonly allowedFileDirs?: readonly string[];
32
+ }
33
+ export type PdfmakeNode = string | PdfmakeObjectNode;
34
+ export interface PdfmakeObjectNode {
35
+ text?: string | PdfmakeNode[];
36
+ style?: string | string[];
37
+ fontSize?: number;
38
+ bold?: boolean;
39
+ italics?: boolean;
40
+ color?: string;
41
+ alignment?: 'left' | 'center' | 'right' | 'justify';
42
+ font?: string;
43
+ ul?: PdfmakeNode[];
44
+ ol?: PdfmakeNode[];
45
+ table?: {
46
+ body: PdfmakeNode[][];
47
+ widths?: (number | string)[];
48
+ headerRows?: number;
49
+ };
50
+ image?: string;
51
+ width?: number;
52
+ height?: number;
53
+ fit?: number | [number, number];
54
+ qr?: string;
55
+ pageBreak?: 'before' | 'after';
56
+ stack?: PdfmakeNode[];
57
+ columns?: PdfmakeNode[];
58
+ canvas?: unknown;
59
+ link?: string;
60
+ }
61
+ export interface PdfmakeStyle {
62
+ fontSize?: number;
63
+ bold?: boolean;
64
+ italics?: boolean;
65
+ color?: string;
66
+ alignment?: 'left' | 'center' | 'right' | 'justify';
67
+ font?: string;
68
+ }
69
+ export interface CompatOptions {
70
+ /**
71
+ * Map of pdfmake style names to pretext-pdf heading levels (1–4).
72
+ * Default: { header: 1, h1: 1, title: 1, subheader: 2, h2: 2, h3: 3, h4: 4 }
73
+ * Pass `{}` to disable heading detection entirely (everything becomes paragraphs).
74
+ */
75
+ headingMap?: Record<string, 1 | 2 | 3 | 4>;
76
+ /**
77
+ * Called when a pdfmake feature is encountered that the shim doesn't translate
78
+ * (canvas, function-style headers, etc.).
79
+ * Default: logs a one-time `console.warn` per feature per `fromPdfmake()` call.
80
+ * Pass `() => {}` to suppress all warnings.
81
+ */
82
+ onUnsupported?: (feature: string) => void;
83
+ }
84
+ export interface TranslateCtx {
85
+ styles: Record<string, PdfmakeStyle>;
86
+ defaultStyle: PdfmakeStyle;
87
+ headingMap: Record<string, 1 | 2 | 3 | 4>;
88
+ onUnsupported: (feature: string) => void;
89
+ }
90
+ export declare const DEFAULT_HEADING_MAP: Record<string, 1 | 2 | 3 | 4>;
91
+ //# sourceMappingURL=pdfmake-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfmake-types.d.ts","sourceRoot":"","sources":["../../src/compat/pdfmake-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** pdfmake input type definitions and compat configuration. */
2
+ export const DEFAULT_HEADING_MAP = {
3
+ header: 1, h1: 1, title: 1,
4
+ subheader: 2, h2: 2,
5
+ h3: 3,
6
+ h4: 4,
7
+ };
8
+ //# sourceMappingURL=pdfmake-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfmake-types.js","sourceRoot":"","sources":["../../src/compat/pdfmake-types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAkF/D,MAAM,CAAC,MAAM,mBAAmB,GAAkC;IAChE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAC1B,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACnB,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;CACN,CAAA"}
@@ -0,0 +1,7 @@
1
+ /** Node-level translation: pdfmake nodes → pretext-pdf ContentElement[] */
2
+ import type { ContentElement, ListItem } from '../types.js';
3
+ import { type PdfmakeNode, type PdfmakeObjectNode, type TranslateCtx } from './pdfmake-types.js';
4
+ export declare function translateNode(node: PdfmakeNode, ctx: TranslateCtx): ContentElement[];
5
+ export declare function translateTextNode(node: PdfmakeObjectNode, ctx: TranslateCtx): ContentElement;
6
+ export declare function pdfmakeNodeToListItem(node: PdfmakeNode, ctx: TranslateCtx): ListItem;
7
+ //# sourceMappingURL=translate.d.ts.map