@stll/docx-core
v0.38.0
Published
Typed OOXML/DOCX model, validation, serialization, legal-source compilation, and browser-native package projection.
Maintainers
Readme
@stll/docx-core
A typed OOXML/DOCX document model with parsing, validation, and serialization.
The package exposes a structured document model (paragraphs, runs, tables,
styles, section properties) together with the tools to produce and check DOCX
packages, plus a legal-source compiler that turns a legal draft (GFM markdown
plus @ directives) into that model or a finished DOCX file, and a plain
markdown reader (compileMarkdownToContent) that shares its parser.
import { compileLegalSourceToDocx, validateDocxPackage } from "@stll/docx-core";
const { docx } = await compileLegalSourceToDocx(source);
const result = await validateDocxPackage(docx);The document model types are also available from a dedicated subpath:
import type { Document, Paragraph, Run } from "@stll/docx-core/model";Install
bun add @stll/docx-coreExports
.— the document model types, the legal-source compiler (parseLegalSource,compileLegalSourceToDocument,compileLegalSourceToDocx,validateLegalDraft), the markdown reader (compileMarkdownToContent,sanitizeExternalUrl), DOCX serialization (serializeDocumentToDocx), and validation (validateDocxPackage,validateDocumentModel,assertValidDocumentModel)../model— the document model types only../ops— document operations over the model:applyDocumentOpandapplyDocumentOpsapply text and formatting edits addressed by paragraph id and offset, and return the new document, the blocks it touched and its exact inverse (operations addressed the same way), or a typed refusal. With arevisionstamp, the text, formatting and paragraph operations record their edit as tracked changes instead, andresolveRevisionaccepts or rejects tracked changes by revision id.planTrackedDeletionplans a tracked deletion around the author's own insertions and comment anchors, andrevisionIdDemandcounts the new revision ids an operation takes.normalizeForOpsandvalidateOpsDocumentestablish and check the contract a document meets before operations apply to it;toOpEnvelopewraps an operation with its schema version for journaling.validateDocumentBatch,parseDocumentBatchandvalidateSequencedBatchdecode bounded batch envelopes.transformBatch,createSequencerandcreateClientprovide conservative rebasing, idempotent in-memory sequencing and optimistic pending queues (see operation batches).
License
Apache-2.0
