documonster 0.19.0 → 0.20.0

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 (160) hide show
  1. package/README.md +1 -1
  2. package/README_zh.md +1 -1
  3. package/dist/esm/modules/archive/compression/compress.base.js +20 -6
  4. package/dist/esm/modules/archive/compression/compress.browser.js +45 -32
  5. package/dist/esm/modules/archive/compression/compress.js +74 -18
  6. package/dist/esm/modules/archive/compression/deflate-fallback.js +14 -3
  7. package/dist/esm/modules/archive/compression/worker-pool/pool.browser.js +9 -3
  8. package/dist/esm/modules/archive/compression/worker-pool/worker-script.js +35 -7
  9. package/dist/esm/modules/archive/core/errors.js +26 -4
  10. package/dist/esm/modules/archive/index.base.js +1 -1
  11. package/dist/esm/modules/archive/unzip/zip-extract-core.js +74 -34
  12. package/dist/esm/modules/archive/unzip/zip-parser.js +55 -9
  13. package/dist/esm/modules/archive/zip-spec/zip-parser-core.js +14 -2
  14. package/dist/esm/modules/csv/parse/scanner/scanner.js +3 -0
  15. package/dist/esm/modules/csv/parse/sync.js +3 -2
  16. package/dist/esm/modules/csv/stream/parser.js +40 -4
  17. package/dist/esm/modules/csv/worker/worker-script.generated.js +1 -1
  18. package/dist/esm/modules/excel/core/cell.js +22 -2
  19. package/dist/esm/modules/excel/core/table.js +39 -2
  20. package/dist/esm/modules/excel/core/worksheet-core.js +39 -0
  21. package/dist/esm/modules/excel/core/worksheet-load.js +3 -1
  22. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +34 -11
  23. package/dist/esm/modules/excel/surface/cell.js +64 -23
  24. package/dist/esm/modules/excel/utils/cell-format.js +3 -2
  25. package/dist/esm/modules/excel/xlsb/read/package.js +3 -1
  26. package/dist/esm/modules/excel/xlsx/read/package.js +17 -1
  27. package/dist/esm/modules/pdf/builder/document-builder.js +3 -1
  28. package/dist/esm/modules/pdf/builder/pdf-editor.js +218 -58
  29. package/dist/esm/modules/pdf/core/pdf-kdf.browser.js +9 -1
  30. package/dist/esm/modules/pdf/core/pdf-kdf.js +8 -0
  31. package/dist/esm/modules/pdf/core/pdf-writer.js +159 -149
  32. package/dist/esm/modules/pdf/core/pdfa.js +7 -3
  33. package/dist/esm/modules/pdf/errors.js +25 -0
  34. package/dist/esm/modules/pdf/index.js +1 -1
  35. package/dist/esm/modules/pdf/reader/pdf-decrypt.js +136 -74
  36. package/dist/esm/modules/pdf/reader/pdf-document.js +314 -105
  37. package/dist/esm/modules/pdf/reader/pdf-parser.js +29 -11
  38. package/dist/esm/modules/pdf/reader/pdf-reader.js +8 -1
  39. package/dist/esm/modules/pdf/reader/stream-filters.js +139 -77
  40. package/dist/esm/modules/pdf/render/pdf-exporter.js +3 -1
  41. package/dist/esm/modules/pdf/word-bridge.js +22 -48
  42. package/dist/esm/modules/word/advanced/field-engine.js +75 -56
  43. package/dist/esm/modules/word/builder/document-handle.js +15 -1
  44. package/dist/esm/modules/word/convert/docx-to-semantic.js +84 -83
  45. package/dist/esm/modules/word/convert/html/html-renderer.js +107 -78
  46. package/dist/esm/modules/word/convert/markdown/markdown-import.js +43 -10
  47. package/dist/esm/modules/word/convert/markdown/markdown-renderer.js +98 -130
  48. package/dist/esm/modules/word/convert/odt/odt.js +149 -55
  49. package/dist/esm/modules/word/core/text-utils.js +9 -0
  50. package/dist/esm/modules/word/errors.js +1 -1
  51. package/dist/esm/modules/word/layout/layout-constants.js +20 -23
  52. package/dist/esm/modules/word/layout/layout-full.js +259 -280
  53. package/dist/esm/modules/word/layout/layout.js +140 -197
  54. package/dist/esm/modules/word/query/final-view.js +49 -0
  55. package/dist/esm/modules/word/query/heading.js +81 -0
  56. package/dist/esm/modules/word/query/merge.js +39 -22
  57. package/dist/esm/modules/word/query/numbering-counter.js +108 -0
  58. package/dist/esm/modules/word/query/page-field.js +212 -0
  59. package/dist/esm/modules/word/query/search.js +15 -14
  60. package/dist/esm/modules/word/query/split.js +15 -25
  61. package/dist/esm/modules/word/query/style-resolve.js +196 -53
  62. package/dist/esm/modules/word/query/style-resolver.js +24 -0
  63. package/dist/esm/modules/word/reader/chart-parser.js +17 -7
  64. package/dist/esm/modules/word/reader/comments-parser.js +4 -4
  65. package/dist/esm/modules/word/reader/doc-props-parsers.js +10 -9
  66. package/dist/esm/modules/word/reader/docx-reader.js +46 -32
  67. package/dist/esm/modules/word/reader/metadata-parsers.js +5 -5
  68. package/dist/esm/modules/word/reader/numbering-parser.js +4 -3
  69. package/dist/esm/modules/word/reader/part-xml.js +26 -0
  70. package/dist/esm/modules/word/reader/reader-context.js +3 -3
  71. package/dist/esm/modules/word/reader/settings-parser.js +3 -3
  72. package/dist/esm/modules/word/reader/styles-parser.js +3 -3
  73. package/dist/esm/modules/word/reader/theme-parser.js +4 -3
  74. package/dist/esm/modules/word/surface/query.js +1 -1
  75. package/dist/esm/modules/word/writer/docx-packager.js +4 -1
  76. package/dist/esm/modules/word/writer/streaming-writer.js +11 -2
  77. package/dist/esm/modules/xml/dom.js +4 -8
  78. package/dist/esm/modules/xml/errors.js +1 -3
  79. package/dist/esm/modules/xml/sax.js +8 -7
  80. package/dist/esm/modules/xml/to-object.js +4 -8
  81. package/dist/esm/utils/crypto.browser.js +147 -0
  82. package/dist/esm/utils/crypto.js +14 -0
  83. package/dist/esm/utils/limits.js +19 -0
  84. package/dist/iife/documonster.archive.iife.min.js +39 -11
  85. package/dist/iife/documonster.csv.iife.min.js +17 -17
  86. package/dist/iife/documonster.draw.iife.min.js +1 -1
  87. package/dist/iife/documonster.excel.iife.min.js +88 -60
  88. package/dist/iife/documonster.formula.iife.min.js +1 -1
  89. package/dist/iife/documonster.markdown.iife.min.js +1 -1
  90. package/dist/iife/documonster.mermaid.iife.min.js +1 -1
  91. package/dist/iife/documonster.pdf.iife.min.js +44 -42
  92. package/dist/iife/documonster.stream.iife.min.js +1 -1
  93. package/dist/iife/documonster.word.iife.min.js +95 -67
  94. package/dist/iife/documonster.xml.iife.min.js +6 -6
  95. package/dist/types/modules/archive/compression/compress.base.d.ts +12 -3
  96. package/dist/types/modules/archive/compression/compress.browser.d.ts +7 -4
  97. package/dist/types/modules/archive/compression/compress.d.ts +9 -4
  98. package/dist/types/modules/archive/compression/deflate-fallback.d.ts +3 -1
  99. package/dist/types/modules/archive/compression/worker-pool/pool.browser.d.ts +4 -1
  100. package/dist/types/modules/archive/compression/worker-pool/types.d.ts +4 -0
  101. package/dist/types/modules/archive/core/errors.d.ts +31 -2
  102. package/dist/types/modules/archive/index.base.d.ts +1 -1
  103. package/dist/types/modules/archive/unzip/zip-extract-core.d.ts +9 -2
  104. package/dist/types/modules/archive/unzip/zip-parser.d.ts +33 -0
  105. package/dist/types/modules/archive/zip-spec/zip-parser-core.d.ts +6 -0
  106. package/dist/types/modules/csv/parse/scanner/types.d.ts +5 -0
  107. package/dist/types/modules/csv/stream/parser.d.ts +16 -0
  108. package/dist/types/modules/csv/worker/worker-script.generated.d.ts +1 -1
  109. package/dist/types/modules/excel/core/table.d.ts +15 -0
  110. package/dist/types/modules/excel/core/worksheet-core.d.ts +26 -0
  111. package/dist/types/modules/excel/stream/workbook-reader.browser.d.ts +11 -0
  112. package/dist/types/modules/excel/surface/cell.d.ts +8 -8
  113. package/dist/types/modules/excel/xlsx/types.d.ts +16 -0
  114. package/dist/types/modules/pdf/builder/document-builder.d.ts +7 -0
  115. package/dist/types/modules/pdf/builder/pdf-editor.d.ts +49 -5
  116. package/dist/types/modules/pdf/core/pdf-kdf.browser.d.ts +4 -0
  117. package/dist/types/modules/pdf/core/pdf-kdf.d.ts +4 -0
  118. package/dist/types/modules/pdf/core/pdf-writer.d.ts +49 -10
  119. package/dist/types/modules/pdf/core/pdfa.d.ts +2 -0
  120. package/dist/types/modules/pdf/errors.d.ts +19 -0
  121. package/dist/types/modules/pdf/index.d.ts +2 -2
  122. package/dist/types/modules/pdf/reader/pdf-document.d.ts +83 -5
  123. package/dist/types/modules/pdf/reader/pdf-parser.d.ts +2 -2
  124. package/dist/types/modules/pdf/reader/pdf-reader.d.ts +7 -0
  125. package/dist/types/modules/pdf/reader/stream-filters.d.ts +5 -1
  126. package/dist/types/modules/pdf/types.d.ts +7 -0
  127. package/dist/types/modules/word/convert/conversion-ir.d.ts +2 -0
  128. package/dist/types/modules/word/core/text-utils.d.ts +7 -1
  129. package/dist/types/modules/word/errors.d.ts +3 -3
  130. package/dist/types/modules/word/index.base.d.ts +1 -1
  131. package/dist/types/modules/word/layout/layout-constants.d.ts +13 -9
  132. package/dist/types/modules/word/query/final-view.d.ts +26 -0
  133. package/dist/types/modules/word/query/heading.d.ts +30 -0
  134. package/dist/types/modules/word/query/numbering-counter.d.ts +47 -0
  135. package/dist/types/modules/word/query/page-field.d.ts +79 -0
  136. package/dist/types/modules/word/query/search.d.ts +8 -2
  137. package/dist/types/modules/word/query/split.d.ts +4 -1
  138. package/dist/types/modules/word/query/style-resolve.d.ts +58 -11
  139. package/dist/types/modules/word/query/style-resolver.d.ts +29 -0
  140. package/dist/types/modules/word/reader/chart-parser.d.ts +2 -2
  141. package/dist/types/modules/word/reader/comments-parser.d.ts +1 -1
  142. package/dist/types/modules/word/reader/doc-props-parsers.d.ts +4 -4
  143. package/dist/types/modules/word/reader/metadata-parsers.d.ts +2 -2
  144. package/dist/types/modules/word/reader/numbering-parser.d.ts +1 -1
  145. package/dist/types/modules/word/reader/part-xml.d.ts +14 -0
  146. package/dist/types/modules/word/reader/reader-context.d.ts +1 -1
  147. package/dist/types/modules/word/reader/settings-parser.d.ts +1 -1
  148. package/dist/types/modules/word/reader/styles-parser.d.ts +1 -1
  149. package/dist/types/modules/word/reader/theme-parser.d.ts +1 -1
  150. package/dist/types/modules/word/surface/query.d.ts +2 -1
  151. package/dist/types/modules/word/types.d.ts +5 -1
  152. package/dist/types/modules/word/writer/docx-packager.d.ts +7 -0
  153. package/dist/types/modules/word/writer/streaming-writer.d.ts +7 -0
  154. package/dist/types/modules/xml/errors.d.ts +9 -0
  155. package/dist/types/modules/xml/index.d.ts +1 -0
  156. package/dist/types/modules/xml/sax.d.ts +2 -1
  157. package/dist/types/utils/crypto.browser.d.ts +10 -0
  158. package/dist/types/utils/crypto.d.ts +10 -0
  159. package/dist/types/utils/limits.d.ts +12 -0
  160. package/package.json +1 -1
@@ -9,6 +9,8 @@ import type { BaseErrorOptions } from "../../utils/errors.js";
9
9
  export declare class XmlError extends BaseError {
10
10
  name: string;
11
11
  }
12
+ /** Resource limit that stopped a parse — see {@link XmlParseError.limit}. */
13
+ export type XmlParseLimit = "depth" | "entityExpansions";
12
14
  /**
13
15
  * Error thrown during XML parsing (SAX or DOM).
14
16
  */
@@ -17,10 +19,17 @@ export declare class XmlParseError extends XmlError {
17
19
  readonly line?: number;
18
20
  readonly column?: number;
19
21
  readonly fileName?: string;
22
+ /**
23
+ * Set when parsing stopped because a configured resource limit was hit
24
+ * (`maxDepth` or `maxEntityExpansions`) rather than because the input is
25
+ * malformed, so callers can react to it without matching the message.
26
+ */
27
+ readonly limit?: XmlParseLimit;
20
28
  constructor(message: string, context?: {
21
29
  line?: number;
22
30
  column?: number;
23
31
  fileName?: string;
32
+ limit?: XmlParseLimit;
24
33
  }, options?: BaseErrorOptions);
25
34
  }
26
35
  /**
@@ -13,3 +13,4 @@
13
13
  export type { XmlAttributes, XmlNodeType, XmlElement, XmlText, XmlCData, XmlComment, XmlProcessingInstruction, XmlNode, XmlDocument, XmlSink, SaxTag, SaxEvent, SaxEventAny, SaxHandlers, SaxOptions, InvalidCharHandling, WritableTarget, XmlParseOptions, ToPlainObjectOptions, ParseXmlToObjectOptions } from "./types.js";
14
14
  export * as Xml from "./surface/xml.js";
15
15
  export { XmlError, XmlParseError, XmlWriteError, isXmlError, isXmlParseError } from "./errors.js";
16
+ export type { XmlParseLimit } from "./errors.js";
@@ -13,6 +13,7 @@
13
13
  *
14
14
  * Based on XML 1.0 specification with fast-path optimizations for ASCII.
15
15
  */
16
+ import type { XmlParseLimit } from "./errors.js";
16
17
  import type { SaxEvent, SaxHandlers, SaxOptions, SaxTag } from "./types.js";
17
18
  /**
18
19
  * Streaming SAX XML parser.
@@ -82,7 +83,7 @@ declare class SaxParser {
82
83
  /** Return the currently-registered handler for an event, if any. */
83
84
  getHandler<K extends keyof SaxHandlers>(name: K): SaxHandlers[K];
84
85
  private makeError;
85
- fail(message: string): this;
86
+ fail(message: string, limit?: XmlParseLimit): this;
86
87
  write(chunk: string | null): this;
87
88
  close(): this;
88
89
  /**
@@ -15,6 +15,16 @@ export declare function aesCbcDecrypt(ciphertext: Uint8Array, key: Uint8Array, i
15
15
  export declare function aesCbcDecryptRaw(ciphertext: Uint8Array, key: Uint8Array, iv: Uint8Array): Uint8Array;
16
16
  export declare function aesCbcEncryptRaw(plaintext: Uint8Array, key: Uint8Array, iv: Uint8Array): Uint8Array;
17
17
  export declare function aesEcbEncrypt(block: Uint8Array, key: Uint8Array): Uint8Array;
18
+ /**
19
+ * SHA-512 hash function (FIPS 180-4).
20
+ * @returns 64-byte digest
21
+ */
22
+ export declare function sha512(input: Uint8Array): Uint8Array;
23
+ /**
24
+ * SHA-384 hash function (FIPS 180-4).
25
+ * @returns 48-byte digest
26
+ */
27
+ export declare function sha384(input: Uint8Array): Uint8Array;
18
28
  export declare function sha256(input: Uint8Array): Uint8Array;
19
29
  export declare function md5(input: Uint8Array): Uint8Array;
20
30
  /**
@@ -21,6 +21,16 @@
21
21
  * @returns 32-byte digest
22
22
  */
23
23
  export declare function sha256(input: Uint8Array): Uint8Array;
24
+ /**
25
+ * SHA-384 hash function (FIPS 180-4).
26
+ * @returns 48-byte digest
27
+ */
28
+ export declare function sha384(input: Uint8Array): Uint8Array;
29
+ /**
30
+ * SHA-512 hash function (FIPS 180-4).
31
+ * @returns 64-byte digest
32
+ */
33
+ export declare function sha512(input: Uint8Array): Uint8Array;
24
34
  /**
25
35
  * HMAC-SHA256 (RFC 2104).
26
36
  * @returns 32-byte MAC
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Validation for size-limit options (`maxOutputLength`, `maxEntrySize`,
3
+ * `maxDecodedBytes`, …), applied once where a public option enters.
4
+ *
5
+ * A limit is a byte or item count: `undefined` selects the default, any
6
+ * non-negative number — `Infinity` included, meaning "unbounded" — is used as
7
+ * given. NaN and negatives used to fall through to whatever comparison each
8
+ * code path happened to make (a NaN bound disables a `>` check; a negative one
9
+ * was clamped on one path and rejected on another), so they are rejected here.
10
+ */
11
+ /** Throw a `RangeError` unless `value` is `undefined` or a non-negative number. */
12
+ export declare function assertLimitOption(name: string, value: unknown): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "documonster",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "Zero-dependency TypeScript toolkit for Excel, Word, PDF, CSV, Markdown, XML & ZIP — one API across Node.js, Bun & browsers.",
5
5
  "keywords": [
6
6
  "archive",