Skip to content

Tracking: 9 senoff fork-of-fork PRs awaiting review (priority-ordered) #61

@senoff

Description

@senoff

Hi @protobi-pieter — opening this as a single tracking issue so triaging the open senoff PRs is one click instead of nine. Context: I maintain xlsx-for-ai (npm, ~100+ downloads/day), which depends on @protobi/exceljs. The 9 PRs below are upstream contributions back to your fork — fixes I needed downstream that seemed worth contributing here rather than carrying patches. No urgency; this issue is just to consolidate the notification surface. If any of these aren't a fit (different design preference, scope mismatch), close + I'll carry the patch downstream — no offense taken either way.

Priority order (highest → lowest impact for typical users)

Bug fixes

  1. Fix StreamBuf parser hang on non-xdr:wsDr drawing root (#56) #58 — Fix StreamBuf parser hang on non-xdr:wsDr drawing root (DrawingXform parser hangs on workbook drawings with non-xdr:wsDr root element #56) — parser hang on certain valid OOXML; reproducible.
  2. Fix #2966: convert formula result to Date when numFmt is date-like #55 — Fix [BUG] Invalid Date object returned for formula result formatted as date exceljs/exceljs#2966: convert formula result to Date when numFmt is date-like — long-standing upstream issue; round-trip data type was wrong.
  3. Fix #2943: preserve falsy formula results (0, false, empty string) in copy #52 — Fix Misshandling of value 0 (zero) in copy operation in FormulaValue exceljs/exceljs#2943: preserve falsy formula results (0, false, empty string) in copy — subtle data loss on copy ops.
  4. Fix #45: defensive handling of drawings without anchors #54 — Fix [BUG] Cannot read properties of undefined (reading 'anchors') when reading XLSX files with certain drawings #45: defensive handling of drawings without anchors — crash → defensive skip.
  5. Fix #3028: make getWorksheet case-insensitive to match addWorksheet #51 — Fix [BUG] getWorksheet(name) is case-sensitive while addWorksheet(name) enforces case-insensitive uniqueness exceljs/exceljs#3028: make getWorksheet case-insensitive to match addWorksheet — API consistency.
  6. Fix silent drop of named LAMBDA / non-range defined names on round-trip #59 — Fix silent drop of named LAMBDA / non-range defined names on round-trip — lost workbook metadata.
  7. Fix #42: extend pivot cache preservation to eliminate Excel repair warning #53 — Fix [BUG] Pivot cache triggers Excel repair #42: extend pivot cache preservation to eliminate Excel repair warning — completes the pivot work shipped in protobi.9.

Lint / dev-experience

  1. Fix prettier↔eslint config drift on comma-dangle functions #57 — Fix prettier↔eslint config drift on comma-dangle functions — cosmetic but unblocks contributors fighting the formatter.

Dependency hygiene (gift PR — consider after the above)

  1. chore(deps): bump uuid 8.3.0 → 14.0.0 to clear audit notice #60 — chore(deps): bump uuid 8.3.0 → 14.0.0 to clear audit notice — clears the only npm audit notice downstream consumers inherit. Note: I'd suggest 9.x rather than 14.x if you'd prefer a smaller jump; happy to amend.

Notes for triage

  • Each PR has tests covering the regression it fixes.
  • All branch off master cleanly as of opening; will rebase if any conflict after partial merges.
  • Happy to squash any subset into a single PR if that reduces review overhead — say the word.
  • Happy to split any PR further if the diff is too coarse — same.
  • If you want me to add a CHANGELOG / release-note entry per PR, point me at the convention you prefer.

Thanks for keeping the fork alive — the pivot/chart preservation work in protobi.9 is exactly why downstream consumers (myself included) chose @protobi/exceljs over the upstream package.

@senoff

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions