ooxml-core 1.21.0 → 1.23.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 (147) hide show
  1. package/README.md +7 -2
  2. package/dist/automation/index.cjs +33925 -12663
  3. package/dist/automation/index.d.ts +4 -0
  4. package/dist/automation/index.d.ts.map +1 -1
  5. package/dist/automation/index.mjs +33913 -12664
  6. package/dist/automation/node.cjs +37 -0
  7. package/dist/automation/node.d.ts +32 -1
  8. package/dist/automation/node.d.ts.map +1 -1
  9. package/dist/automation/node.mjs +36 -1
  10. package/dist/automation/proposal.d.ts +25 -0
  11. package/dist/automation/proposal.d.ts.map +1 -0
  12. package/dist/automation/tools/define.d.ts +27 -0
  13. package/dist/automation/tools/define.d.ts.map +1 -0
  14. package/dist/automation/tools/docx-tools.d.ts +4 -0
  15. package/dist/automation/tools/docx-tools.d.ts.map +1 -0
  16. package/dist/automation/tools/index.d.ts +16 -0
  17. package/dist/automation/tools/index.d.ts.map +1 -0
  18. package/dist/automation/tools/types.d.ts +52 -0
  19. package/dist/automation/tools/types.d.ts.map +1 -0
  20. package/dist/automation/tools/visio-tools.d.ts +4 -0
  21. package/dist/automation/tools/visio-tools.d.ts.map +1 -0
  22. package/dist/automation/tools/xlsx-tools.d.ts +8 -0
  23. package/dist/automation/tools/xlsx-tools.d.ts.map +1 -0
  24. package/dist/automation/xlsx-edits.d.ts +88 -0
  25. package/dist/automation/xlsx-edits.d.ts.map +1 -0
  26. package/dist/automation/xlsx-proposal.d.ts +34 -0
  27. package/dist/automation/xlsx-proposal.d.ts.map +1 -0
  28. package/dist/automation/xlsx.d.ts +10 -5
  29. package/dist/automation/xlsx.d.ts.map +1 -1
  30. package/dist/chunk-MHNETXQB.mjs +1 -0
  31. package/dist/collab/embedding.d.ts +15 -3
  32. package/dist/collab/embedding.d.ts.map +1 -1
  33. package/dist/collab/index.cjs +313 -102
  34. package/dist/collab/index.d.ts +3 -0
  35. package/dist/collab/index.d.ts.map +1 -1
  36. package/dist/collab/index.mjs +309 -103
  37. package/dist/collab/webrtc-provider.d.ts +21 -0
  38. package/dist/collab/webrtc-provider.d.ts.map +1 -0
  39. package/dist/collab/write-back-lifecycle.d.ts +33 -0
  40. package/dist/collab/write-back-lifecycle.d.ts.map +1 -0
  41. package/dist/collab/write-back.d.ts +75 -0
  42. package/dist/collab/write-back.d.ts.map +1 -0
  43. package/dist/pptx/automation/index.cjs +28707 -7376
  44. package/dist/pptx/automation/index.d.ts +91 -1
  45. package/dist/pptx/automation/index.d.ts.map +1 -1
  46. package/dist/pptx/automation/index.mjs +734 -57
  47. package/dist/pptx/automation/schemas/chart-formatting-schemas.d.ts +1 -1
  48. package/dist/pptx/automation/schemas/chart-schemas.d.ts +1 -1
  49. package/dist/pptx/automation/schemas/chart-user-shape-schemas.d.ts +1 -1
  50. package/dist/pptx/automation/schemas/element-schemas.d.ts +1 -1
  51. package/dist/pptx/automation/schemas/export-schemas.d.ts +1 -1
  52. package/dist/pptx/automation/schemas/geometry-schemas.d.ts +1 -1
  53. package/dist/pptx/automation/schemas/hyperlink-schemas.d.ts +1 -1
  54. package/dist/pptx/automation/schemas/index.mjs +1 -0
  55. package/dist/pptx/automation/schemas/json-schemas.d.ts +1 -1
  56. package/dist/pptx/automation/schemas/layout-schemas.d.ts +1 -1
  57. package/dist/pptx/automation/schemas/lock-schemas.d.ts +1 -1
  58. package/dist/pptx/automation/schemas/metadata-schemas.d.ts +1 -1
  59. package/dist/pptx/automation/schemas/ole-schemas.d.ts +1 -1
  60. package/dist/pptx/automation/schemas/presentation-schemas.d.ts +1 -1
  61. package/dist/pptx/automation/schemas/section-schemas.d.ts +1 -1
  62. package/dist/pptx/automation/schemas/slide-schemas.d.ts +1 -1
  63. package/dist/pptx/automation/schemas/smartart-schemas.d.ts +1 -1
  64. package/dist/pptx/automation/schemas/table-style-schemas.d.ts +1 -1
  65. package/dist/pptx/automation/schemas/template-schemas.d.ts +1 -1
  66. package/dist/pptx/automation/schemas/theme-schemas.d.ts +1 -1
  67. package/dist/pptx/automation/schemas/validation-schemas.d.ts +1 -1
  68. package/dist/pptx/chunks/{schemas-CWr181Wx.d.ts → schemas-fuDGetRe.d.ts} +2 -2
  69. package/dist/pptx/chunks/{schemas-CWr181Wx.d.ts.map → schemas-fuDGetRe.d.ts.map} +1 -1
  70. package/dist/visio/collab/baseline.d.ts +36 -0
  71. package/dist/visio/collab/baseline.d.ts.map +1 -0
  72. package/dist/visio/collab/bind.d.ts +62 -0
  73. package/dist/visio/collab/bind.d.ts.map +1 -0
  74. package/dist/visio/collab/compose-lists.d.ts +27 -0
  75. package/dist/visio/collab/compose-lists.d.ts.map +1 -0
  76. package/dist/visio/collab/compose.d.ts +19 -0
  77. package/dist/visio/collab/compose.d.ts.map +1 -0
  78. package/dist/visio/collab/fixups.d.ts +5 -0
  79. package/dist/visio/collab/fixups.d.ts.map +1 -0
  80. package/dist/visio/collab/index.cjs +2331 -0
  81. package/dist/visio/collab/index.d.ts +9 -0
  82. package/dist/visio/collab/index.d.ts.map +1 -0
  83. package/dist/visio/collab/index.mjs +2281 -0
  84. package/dist/visio/collab/keys.d.ts +51 -0
  85. package/dist/visio/collab/keys.d.ts.map +1 -0
  86. package/dist/visio/collab/order.d.ts +11 -0
  87. package/dist/visio/collab/order.d.ts.map +1 -0
  88. package/dist/visio/collab/package.d.ts +58 -0
  89. package/dist/visio/collab/package.d.ts.map +1 -0
  90. package/dist/visio/collab/pieces.d.ts +34 -0
  91. package/dist/visio/collab/pieces.d.ts.map +1 -0
  92. package/dist/visio/collab/read-ids.d.ts +29 -0
  93. package/dist/visio/collab/read-ids.d.ts.map +1 -0
  94. package/dist/visio/collab/read-parts.d.ts +34 -0
  95. package/dist/visio/collab/read-parts.d.ts.map +1 -0
  96. package/dist/visio/collab/read-shapes.d.ts +35 -0
  97. package/dist/visio/collab/read-shapes.d.ts.map +1 -0
  98. package/dist/visio/collab/read-util.d.ts +20 -0
  99. package/dist/visio/collab/read-util.d.ts.map +1 -0
  100. package/dist/visio/collab/read.d.ts +62 -0
  101. package/dist/visio/collab/read.d.ts.map +1 -0
  102. package/dist/visio/collab/scan.d.ts +28 -0
  103. package/dist/visio/collab/scan.d.ts.map +1 -0
  104. package/dist/visio/collab/schema.d.ts +124 -0
  105. package/dist/visio/collab/schema.d.ts.map +1 -0
  106. package/dist/visio/collab/snapshot-contents.d.ts +9 -0
  107. package/dist/visio/collab/snapshot-contents.d.ts.map +1 -0
  108. package/dist/visio/collab/snapshot-io.d.ts +26 -0
  109. package/dist/visio/collab/snapshot-io.d.ts.map +1 -0
  110. package/dist/visio/collab/snapshot-parts.d.ts +14 -0
  111. package/dist/visio/collab/snapshot-parts.d.ts.map +1 -0
  112. package/dist/visio/collab/snapshot.d.ts +68 -0
  113. package/dist/visio/collab/snapshot.d.ts.map +1 -0
  114. package/dist/visio/collab/write-parts.d.ts +8 -0
  115. package/dist/visio/collab/write-parts.d.ts.map +1 -0
  116. package/dist/visio/collab/write-shapes.d.ts +30 -0
  117. package/dist/visio/collab/write-shapes.d.ts.map +1 -0
  118. package/dist/visio/collab/write.d.ts +8 -0
  119. package/dist/visio/collab/write.d.ts.map +1 -0
  120. package/dist/visio/index.cjs +57 -4
  121. package/dist/visio/index.d.ts +1 -0
  122. package/dist/visio/index.d.ts.map +1 -1
  123. package/dist/visio/index.mjs +56 -5
  124. package/dist/visio/parse-incremental.d.ts +16 -0
  125. package/dist/visio/parse-incremental.d.ts.map +1 -0
  126. package/dist/visio/parser.d.ts +7 -0
  127. package/dist/visio/parser.d.ts.map +1 -1
  128. package/dist/visio/ui/collab-options.d.ts +29 -0
  129. package/dist/visio/ui/collab-options.d.ts.map +1 -0
  130. package/dist/visio/ui/collab-presence.d.ts +31 -0
  131. package/dist/visio/ui/collab-presence.d.ts.map +1 -0
  132. package/dist/visio/ui/contract.d.ts +4 -3
  133. package/dist/visio/ui/contract.d.ts.map +1 -1
  134. package/dist/visio/ui/document-history.d.ts +3 -1
  135. package/dist/visio/ui/document-history.d.ts.map +1 -1
  136. package/dist/visio/ui/index.cjs +125 -56
  137. package/dist/visio/ui/index.d.ts +2 -0
  138. package/dist/visio/ui/index.d.ts.map +1 -1
  139. package/dist/visio/ui/index.mjs +120 -57
  140. package/dist/xlsx/ui/index.cjs +5 -0
  141. package/dist/xlsx/ui/index.mjs +5 -0
  142. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -1
  143. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -1
  144. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -1
  145. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -1
  146. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -1
  147. package/package.json +6 -1
package/README.md CHANGED
@@ -24,7 +24,7 @@ Part of [ooxml](https://github.com/ChristopherVR/ooxml#readme): [Office](https:/
24
24
 
25
25
  ## Why ooxml-core?
26
26
 
27
- - **No UI, no framework.** Everything runs in browsers, Node.js, Bun, workers and serverless functions. The viewer apps ([docx](https://christophervr.github.io/ooxml/docx/), [xlsx](https://christophervr.github.io/ooxml/xlsx/), [visio](https://christophervr.github.io/ooxml/visio/), [teams](https://christophervr.github.io/ooxml/teams/) and [pptx-viewer](https://github.com/ChristopherVR/pptx-viewer)) are thin interfaces on top of it, and so can your application be.
27
+ - **No UI, no framework.** Everything runs in browsers, Node.js, Bun, workers and serverless functions. The viewer apps ([docx](https://christophervr.github.io/ooxml/docx/), [xlsx](https://christophervr.github.io/ooxml/xlsx/), [visio](https://christophervr.github.io/ooxml/visio/), [teams](https://christophervr.github.io/ooxml/teams/) and [pptx](https://christophervr.github.io/ooxml/pptx/)) are thin interfaces on top of it, and so can your application be.
28
28
  - **One package, one structure.** All formats share the same XML model, packaging layer, units, colours and geometry. Each format is an _area_ of this one package, not a separate dependency to keep in step.
29
29
  - **Round-trips without losing what it does not understand.** Documents are loaded into a model, edited, and written back. Untouched parts stay byte-for-byte, unknown markup is preserved, and edits that would damage unsupported content are rejected instead of silently dropped.
30
30
  - **Strict by default.** New code is strict TypeScript with branded measurement units, the shared `xml` area parses strictly (no DTD or entity expansion), and the `docx` area is checked against the ECMA-376 schemas in the test suite.
@@ -47,12 +47,17 @@ import { xml, opc } from 'ooxml-core'; // or by namespace (shared building block
47
47
  | `color` | Hex, RGB, HSL and linear colour primitives, OOXML percent and angle parsing. |
48
48
  | `geometry` | DrawingML preset shapes, connection sites, clip paths, callouts and boolean shape operations. |
49
49
  | `diagram` | SmartArt (DiagramML), format-neutral: data model, layout/colour/quick-style parts, the cached `dsp:drawing` shape tree, relationship resolution and a loader. Used by `docx`; `pptx` re-imports its parsers. |
50
+ | `drawingml` | Format-neutral DrawingML: colour, fill, text-body and geometry readers, the colour and fill writers and the theme model that docx and xlsx read their themes through. |
51
+ | `chart` | Format-neutral chart algorithms and formatting helpers: data calculations, axes, number formats, the Change Colors palettes and the SVG chart painter. |
52
+ | `text` | Shared text rules: script-category segmentation, tab leaders and styled-run wrapping. |
53
+ | `i18n` | Locale normalisation, dictionary merging and the translator every product UI uses. |
54
+ | `ribbon` | DOM-free ribbon contracts every product shares, today the add-in tab descriptor a host uses to add its own tabs. |
50
55
  | `digest` | Synchronous pure-TypeScript SHA-1, SHA-256, SHA-384 and SHA-512, ECMA-376 digest name normalisation (`SHA-512`, `SHA512`, `sha_512`, ...) and the agile password hash Office protection elements store (`hashPassword`, `verifyPasswordHash`). No Web Crypto, so it works on `http://`. Used by `xlsx` sheet and workbook protection. |
51
56
  | `crypto` | ECMA-376 package encryption ([MS-OFFCRYPTO]) for every format: `decryptOoxmlPackage`, `encryptOoxmlPackage` (agile AES-256/SHA-512 by default, or Standard), `isEncryptedOoxmlPackage`, and typed errors with a `code` (`password-required`, `incorrect-password`, `data-integrity`). The compound-file container comes from ole2 (inlined); not in the root entry. |
52
57
  | `collab` | Format-neutral real-time collaboration on Yjs: session and provider lifecycle, awareness/presence, transport-neutral sync (WebSocket, in-memory, any byte channel), update codecs, ordering helpers, asset sync and the product adapter seam. See `docs/collab-area.md`. |
53
58
  | `docx` | WordprocessingML: model, parser, preserving serializer, editing, validation. Also `/docx/embedded`. `/docx/layout` is the DOM-free pagination engine (an approximation of Word, not parity) and `/docx/load` detects and loads DOCX (also password-protected, `{ password }`) and legacy .doc (ole2 inlined). |
54
59
  | `pptx` | PresentationML: model, parser, serializer, editing, charts, SmartArt, converters, CLI, signatures. Subpaths `/pptx/converter`, `/pptx/cli`, `/pptx/signature-node`. |
55
- | `xlsx` | SpreadsheetML: workbook model, `.xlsx`/`.xlsm` reader and preserving writer, formula engine (dependency graph, dynamic arrays, 380+ functions), Excel number formats, editing commands with undo, and the DOM-free grid layout (sizes, colours, conditional formats, charts as SVG, drawing anchors). SmartArt is shown from the cached drawing (not re-laid out) and kept verbatim on save. `/xlsx/load` detects and loads `.xlsx`, `.xlsm` (also password-protected: `loadWorkbook(bytes, { password })`, `saveWorkbook(workbook, 'xlsx', { password })`), legacy `.xls` (ole2 inlined) and CSV, and refuses `.xlsb` with a typed error. `/xlsx/collab` shares a workbook over Yjs (cells, formats, rows, columns, merges, sheets and defined names; see `docs/collab-area.md`). Digital signatures are detected and reported, never kept on save. An approximation of Excel, not parity. |
60
+ | `xlsx` | SpreadsheetML: workbook model, `.xlsx`/`.xlsm` reader and preserving writer, formula engine (dependency graph, dynamic arrays, 490+ functions), Excel number formats, editing commands with undo, and the DOM-free grid layout (sizes, colours, conditional formats, charts as SVG, drawing anchors). SmartArt is shown from the cached drawing (not re-laid out) and kept verbatim on save. `/xlsx/load` detects and loads `.xlsx`, `.xlsm` (also password-protected: `loadWorkbook(bytes, { password })`, `saveWorkbook(workbook, 'xlsx', { password })`), legacy `.xls` (ole2 inlined) and CSV, and refuses `.xlsb` with a typed error. `/xlsx/collab` shares a workbook over Yjs (cells, formats, rows, columns, merges, sheets and defined names; see `docs/collab-area.md`). Digital signatures are detected and reported, never kept on save. An approximation of Excel, not parity. |
56
61
  | `visio` | Visio: `.vsdx` parsing, loading and bounded editing, page layers and visibility, and a conservative preview of legacy `.vsd` (through ole2). See `docs/visio-legacy-vsd.md`. |
57
62
  | `math` | Office Math: OMML to and from LaTeX and MathML, with colour and size helpers. |
58
63
  | `teams` | The logic of the OpenTeams workspace: channels and chat on Yjs, presence, WebRTC calls with pluggable signalling, server configuration and the `createTeamsClient` store every UI binds to. Built on `collab`. See `docs/teams-area.md`. |