Pre-wired collections of extra modules, exposed as pure fw factory descriptors. Each bundle declares the core format module (docx / xlsx / pptx) plus the relevant extras as dependencies. Register the descriptor in a ModuleRuntime and resolve it — the runtime wires every dependency transitively and the factory returns the enriched core instance.
Reading the Coverage column. "~95%" is an estimate of real-world usage, not a measurement. A full bundle means every element of the ECMA-376 Part 1 schemas is either typed or preserved as a catalogued passthrough (see the coverage guide); it is not a conformance measurement.
| Bundle | Coverage | Resolve key | Source |
|---|---|---|---|
docx-large |
docx ~95% | 'docxLargeBundle' |
src/bundles/docx-large.js |
docx-full |
docx, every element typed or preserved | 'docxFullBundle' |
src/bundles/docx-full.js |
xlsx-large |
xlsx ~95% | 'xlsxLargeBundle' |
src/bundles/xlsx-large.js |
xlsx-full |
xlsx, every element typed or preserved | 'xlsxFullBundle' |
src/bundles/xlsx-full.js |
pptx-large |
pptx ~95% | 'pptxLargeBundle' |
src/bundles/pptx-large.js |
pptx-full |
pptx, every element typed or preserved | 'pptxFullBundle' |
src/bundles/pptx-full.js |
Looking for a single-factory entrypoint that does not require registering 40+ ooxml modules first? See pre-built bundles — each logical bundle ships in two pre-built surfaces under
dist/:dist/standalone/<root>.js(-bundled, everything inlined) anddist/build/<root>.js(-package, the 6 fw modules injected by DI).
Common pattern
Consumption is exclusively declarative — register the bundle descriptor alongside the core ooxml modules and the relevant extras, then resolve.
ModuleRuntime lives at @awacloud/fw/core/runtime.js (the @awacloud/fw root only
exports ENV, log, runtime, createWorker, domReady). The extras are
not re-exported by name from the @awacloud/ooxml root — import the whole
extras array, or reach an individual descriptor through the
@awacloud/ooxml/extra/<file> sub-path.
import { ModuleRuntime } from '@awacloud/fw/core/runtime.js';
import { fw_require, modules, extras } from '@awacloud/ooxml';
import { docxLargeBundle } from '@awacloud/ooxml/bundles/docx-large';
const runtime = new ModuleRuntime();
// `register` takes ONE descriptor per call — use `registerAll` for an array.
runtime.registerAll(fw_require); // the @awacloud/fw modules the package consumes
runtime.registerAll(modules);
runtime.registerAll(extras);
runtime.register(docxLargeBundle);
const word = runtime.resolve('docxLargeBundle'); // enriched docx instance
const result = word.read(bytes);
// Runs / paragraphs / tables / settings now expose typed extra fields.
Registering the whole extras array is the simplest option; a bundle only
resolves the extras it actually declares, so nothing else is instantiated.
Breaking change. The previous imperative helpers
buildDocxLarge,buildDocxFull,buildXlsxLarge,buildXlsxFull,buildPptxLarge,buildPptxFullhave been removed. The bundles are now pure factory descriptors and must be wired through aModuleRuntime.