Skip to content

build(deps): Bump officeparser from 8.6.0 to 8.7.0 in the minor-and-patch group - #119

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/minor-and-patch-567ae1f7e0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/minor-and-patch-567ae1f7e0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 11, 2026

Copy link
Copy Markdown
Contributor

Bumps the minor-and-patch group with 1 update: officeparser.

Updates officeparser from 8.6.0 to 8.7.0

Release notes

Sourced from officeparser's releases.

v8.7.0: 📝 OpenDocument Templates, Disclosures & Captions

I am pleased to announce the release of officeParser v8.7.0! Templates fill OpenDocument text files as well as Word files and tell you about text that only looks like a tag, <details> and figure captions survive the trip through HTML and Markdown, note references show their real marks, and a set of fixes keeps small hostile files from growing into huge outputs.


🌟 Key Highlights

1. OpenDocument text templates

OfficeTemplate.render, tags() and check() now fill .odt and .ott templates with the same tags and data as Word's: text split across spans, headers and footers, notes, comments, text boxes, list items and table rows. An .ott renders to an .odt.

const filled = await OfficeTemplate.render('letter.ott', { data });

2. Templates that tell you what went wrong

  • Text that looks like a tag but is not one ({{first name}}, {{ name }, full-width braces) is listed by tags() and warned once by render() and check() with TEMPLATE_NOT_A_TAG.
  • dataNumberSeparators reads numbers written as text with a decimal comma ('1.234,50'), and text that is a number compares with a number in conditions.
  • A keyword spelt as other template languages spell it (elseif, end if) carries the fix in details.suggestion.

3. Disclosures, keyboard input and figure captions

<details>/<summary> is read from HTML and Markdown as a disclosure node with a summary node, written back as such in HTML, EPUB and Markdown and as a bold summary line elsewhere. <kbd> is read as keyboard input, and a <figure>'s caption is read as the picture's (ImageMetadata.caption) and written in every format and image mode.

4. Sheets as document tables

htmlConfig.sheetLayout: 'tables' writes each sheet of a workbook as a heading and a plain table, for pages that embed a workbook in a document.


🔧 Also Fixed

  • Note references show the note's mark, not its internal id (2, ftn1), following ODT's notes configuration.
  • RTF bullet lists with numbered deeper levels stay bullet lists.
  • A quote of several paragraphs stays one quote in HTML, EPUB, Markdown and LaTeX.
  • XHTML is read as HTML without a type warning.
  • Markdown keeps text it dropped after an empty first list item and in items holding a lone carriage return.
  • Small documents can no longer grow into huge outputs through repeated headers, nested text boxes or styled rich strings, and large workbooks of repeated rich text are read whole.
  • The native PDF engine and the chunk splitter work in bounded memory on very long paragraphs; the PDF is byte for byte the same.
  • LaTeX writes a highlight through one command per colour, about half the size, and highlighted underlined text wraps.

📝 On the blog: Filling an OpenDocument Template, Text That Looks Like a Tag, Reading a Details Block in Markdown the Way GitHub Shows It and How a Document Library Is Tested.


🛠 Getting Started

npm install officeparser@8.7.0

... (truncated)

Changelog

Sourced from officeparser's changelog.

[8.7.0] - 2026-11-08

Added

  • OpenDocument text templates. OfficeTemplate.render, tags() and check() fill .odt and .ott templates with the same tags and data as Word's: text split across spans, headers and footers, notes, comments, text boxes, list items and table rows, with fresh ids for every copy. An .ott renders to an .odt.
  • Text that looks like a tag but is not one is reported. {{first name}}, {{ name }, an unknown filter and full-width braces are listed by tags() as kind: 'text' with a reason, and render() and check() warn once with TEMPLATE_NOT_A_TAG. At most 1,000 are listed per template; the warning's details.found counts them all. Braces in ordinary prose, code and JSON are not reported.
  • dataNumberSeparators. Templates read numbers written as text with other separators ('1.234,50' with { decimal: ',', group: '.' }), for format and for conditions. Groups must be three digits, so ambiguous text is refused rather than misread.
  • A misspelt block keyword carries its fix as data. {{ elseif x }}, {{ elif x }} and {{ end if }} give details.suggestion with the tag as it should be typed.
  • Figure captions. A <figure>'s caption is read as the picture's (ImageMetadata.caption). It is written back as a figure in HTML, EPUB and Markdown, and as a caption paragraph after the picture in every other format.
  • Disclosures and keyboard input. <details> in HTML and Markdown is read as a disclosure node (DisclosureMetadata), whose first child is a summary node holding the summary's content: headings, links, pictures and notes included. In Markdown a disclosure may span blocks, read as GitHub shows it. Disclosures are written back as such in HTML, EPUB and Markdown, and elsewhere as the summary in bold followed by the body. <kbd> is read as keyboard input (TextFormatting.keyboard), kept in HTML and Markdown and written as code elsewhere.
  • htmlConfig.sheetLayout: 'tables'. Writes each sheet of a workbook as a heading and a plain table, instead of the spreadsheet viewer with tabs, column letters and row numbers.
  • NoteMetadata.mark and customMark. The mark a note's source shows at its reference, and whether its author chose it.

Changed

  • In a template condition, text that is a number compares with a number as that number. {{ if total > 100 }} with total: '250' was refused as incomparable; text that is not a number still is.

Fixed

  • Note references show the note's mark, not its internal id. HTML, EPUB, slides and the native PDF engine printed DOCX's 2 for the first footnote, ODT's ftn1 or EPUB's dataF1. A note shows the mark its source gives (ODT's notes configuration, a custom mark) or its number among notes of its kind.
  • RTF bullet lists with numbered deeper levels stay bullet lists. A list was read as numbered if any of its levels was.
  • A quote of several paragraphs stays one quote in HTML, EPUB, Markdown and LaTeX; it was written as one quote per paragraph.
  • Markdown keeps text it dropped. A list item holding a lone carriage return (or U+2028, U+2029) was dropped whole, and a list whose first item was empty lost the lines after it when the text started with a blank line or an indented line; both keep their text now.
  • XHTML is read as HTML. An HTML file with an XML declaration (LibreOffice's HTML export) warned BUFFER_TYPE_MISMATCH, and without fileType was refused.
  • Header and footer parts shown in many sections are counted with their fonts and values against decompressionLimits.maxRepeatedContent. A 2 KB ODT or 8 KB DOCX alternating two headers in a long font made hundreds of MB of JSON, and every writer failed.
  • XLSX: a styled or linked cell showing a rich string keeps its run fonts within the budget. They were counted twice and dropped. A cell showing a shared string again costs up to 128 characters less while 64 characters per byte of the document last, so large workbooks of repeated rich text are read whole.
  • ODT: text boxes nested in text boxes no longer repeat their text at every level without bound.
  • Chunking a paragraph of millions of characters with no spaces no longer runs out of memory.
  • The native PDF engine's memory no longer grows with the words a document draws. It holds each page's drawing compressed and lays a paragraph out piece by piece; the PDF is byte for byte the same.
  • ODT: line breaks inside a link no longer use up the budget, so text runs keep their links.
  • Bold, italic and other style flags count toward maxRepeatedContent.
  • LaTeX writes a highlight through one command per colour. Highlighted text is about half the size it was, and highlighted underlined text wraps instead of running off the page. A formula naming one of the generator's own commands (a highlight, the driver or a repeated note's number) prints its name instead of breaking the build or printing the note's number.
Commits
  • 6377e30 test(markdown): disclosure timing checks compare a shape with itself at a qua...
  • 8ac9176 blog: revisions from the 8.7.0 audit: disclosure and summary nodes in the AST...
  • ba38d5c blog: four posts for 8.7.0, OpenDocument templates, text that looks like a ta...
  • 63b29e7 chore(release): 8.7.0 changelog, version, docs, site and browser bundles
  • 7942422 test(html, markdown): round 15 findings, long runs of anchors and captions
  • a77ddfb fix(html, markdown, figures): long runs of anchors and captions are no longer...
  • 70cb72c test(html, markdown): round 14 findings, anchors around disclosure summaries,...
  • 521ba81 fix(html): a source comment does not count as line content before a captioned...
  • 1f5a27a fix(html): a figure caption in an aligned block or list item is the picture's...
  • a28a284 fix(html, markdown): an anchor id ending a disclosure is kept
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the minor-and-patch group with 1 update: [officeparser](https://github.com/harshankur/officeParser).


Updates `officeparser` from 8.6.0 to 8.7.0
- [Release notes](https://github.com/harshankur/officeParser/releases)
- [Changelog](https://github.com/harshankur/officeParser/blob/master/CHANGELOG.md)
- [Commits](harshankur/officeParser@v8.6.0...v8.7.0)

---
updated-dependencies:
- dependency-name: officeparser
  dependency-version: 8.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants