This repository is the community product line (edition=community). It is the sole source of truth for shared packages (core, opc, pptx, workspace, …).
The commercial product lives in the private deckuse-commercial repository as a thin overlay: it replaces @deckflow/deckuse-edition-config, registers a PptxEditionExtension, and may add proprietary packages. It must not maintain a second copy of shared source.
| Class | Meaning | Where code lives |
|---|---|---|
| Shared primitives | OOXML helpers used by community slide / basic-chart edits (setNodeText, applyChartProperties, …) |
Public @deckflow/deckuse-pptx |
| Edition-gated writes | Master / Layout / Theme / Advanced Chart writes are hard-denied in shared code regardless of editionCapabilities |
Allowed only via a registered PptxEditionExtension from private commercial packages |
| B — proprietary | Editors that must not appear in this public tree (SmartArt, office2html plus, …) | Only deckuse-commercial private packages, injected through the same extension / hooks |
Runtime edition gates (UNSUPPORTED_CAPABILITY) are not a secrecy mechanism for shared primitives. Anything committed here is visible under AGPL. Commercial overlays own authorization and product write paths for gated targets; they must not rely on flipping editionCapabilities in a swapped config package.
Authorization rules come from the edition scope matrix (Master/Layout/Theme/Advanced Chart, etc.).
Community edition:
- Allows editing common slide objects: shapes, text boxes, connectors, groups, pictures, tables, and basic charts (
pie/line/bar/columnfamilies, plus limited combo = onebarChart+ onelineChartwith optional dual Y-axis). - Allows listing and resolving masters, layouts, and themes; placeholder inheritance reads remain available.
- Rejects writes to master slides, layout slides, and theme parts (
UNSUPPORTED_CAPABILITY). - Rejects edits to advanced charts (other non-basic families, ChartEx, unclassifiable charts, combos other than bar+line).
- Embeds the closed-source
office2htmlengine (notoffice2html plus).
editionCapabilities is status metadata only. Proprietary write authorization lives in commercial packages via registerPptxEditionExtension.
Runtime commercial license checks (issue, verify, activate, --license / DECKUSE_LICENSE / deckuse.lic, and any licensing/ gate) must live only in the private deckuse-commercial repository. This community repo’s @deckflow/deckuse-edition-config is constants-only: it must not contain licensing source, stubs, or conditional activation logic. pnpm check:no-commercial-leak enforces that boundary.
Runtime/status reports:
edition:communityvariant:communitydistribution-channel:oss
- Basic Formula structured edit
- Full object classification (SmartArt / OLE / Formula / Model3D / Ink detection beyond current indexer)
These are not commercial-only; they remain open for community delivery later.